X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=score.c;h=edc46ed4f577435a1512be6925b63c305559c038;hb=5564863bb040e340f593b023c873457b8a5d6428;hp=894e8ca3deae39f21552a6cd331237551e9c7a1b;hpb=a79e210f33334b273d11c92a430dd477284ee95a;p=paraslash.git diff --git a/score.c b/score.c index 894e8ca3..edc46ed4 100644 --- a/score.c +++ b/score.c @@ -119,7 +119,7 @@ int score_add(const struct osl_row *aft_row, long score) score_objs[SCORECOL_AFT_ROW].size = size; size = score_table_desc.column_descriptions[SCORECOL_SCORE].data_size; - score_objs[SCORECOL_SCORE].data = para_malloc(size); + score_objs[SCORECOL_SCORE].data = alloc(size); score_objs[SCORECOL_SCORE].size = size; *(long *)(score_objs[SCORECOL_SCORE].data) = score; @@ -132,16 +132,6 @@ int score_add(const struct osl_row *aft_row, long score) return ret; } -static int get_nth_score(unsigned n, long *score) -{ - struct osl_row *row; - int ret = osl(osl_get_nth_row(score_table, SCORECOL_SCORE, n, &row)); - - if (ret < 0) - return ret; - return get_score_of_row(row, score); -} - /** * Replace a row of the score table. * @@ -156,7 +146,7 @@ static int get_nth_score(unsigned n, long *score) */ int score_update(const struct osl_row *aft_row, long percent) { - struct osl_row *row; + struct osl_row *row, *rrow; /* score row, reference row */ long new_score; unsigned n, new_pos; struct osl_object obj = {.data = (struct osl_row *)aft_row, @@ -171,12 +161,15 @@ int score_update(const struct osl_row *aft_row, long percent) if (ret < 0) return ret; new_pos = 1 + (n - 1) * percent / 100; - ret = get_nth_score(new_pos, &new_score); + ret = osl(osl_get_nth_row(score_table, SCORECOL_SCORE, new_pos, &rrow)); + if (ret < 0) + return ret; + ret = get_score_of_row(rrow, &new_score); if (ret < 0) return ret; new_score--; obj.size = sizeof(long); - obj.data = para_malloc(obj.size); + obj.data = alloc(obj.size); *(long *)obj.data = new_score; PARA_DEBUG_LOG("new score: %ld, rank %u/%u\n", new_score, new_pos, n); return osl(osl_update_object(score_table, row, SCORECOL_SCORE, &obj)); @@ -307,7 +300,6 @@ static void score_close(void) static int score_open(__a_unused const char *dir) { - score_table_desc.dir = NULL; /* this table has only volatile columns */ return osl(osl_open_table(&score_table_desc, &score_table)); }