First draft of the libosl patch series.
[paraslash.git] / score.c
diff --git a/score.c b/score.c
index 58d219ab8af36b431587cdeaa1e0b5e2e577b79c..89a0fbe9cb61fa89ad67e3ecd2d1f5518b5029e3 100644 (file)
--- a/score.c
+++ b/score.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2009 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -132,7 +132,7 @@ int score_add(const struct osl_row *aft_row, long score)
 
        assert(aft_row);
        size = score_table_desc.column_descriptions[SCORECOL_AFT_ROW].data_size;
-       score_objs[SCORECOL_AFT_ROW].data = aft_row;
+       score_objs[SCORECOL_AFT_ROW].data = (struct osl_row *)aft_row;
        score_objs[SCORECOL_AFT_ROW].size = size;
 
        size = score_table_desc.column_descriptions[SCORECOL_SCORE].data_size;
@@ -143,7 +143,7 @@ int score_add(const struct osl_row *aft_row, long score)
 //     PARA_DEBUG_LOG("adding %p\n", *(void **) (score_objs[SCORECOL_AFT_ROW].data));
        ret = osl_add_row(score_table, score_objs);
        if (ret < 0) {
-               PARA_ERROR_LOG("%s\n", PARA_STRERROR(-ret));
+               PARA_ERROR_LOG("%s\n", para_strerror(-ret));
                free(score_objs[SCORECOL_SCORE].data);
        }
        return ret;
@@ -178,9 +178,12 @@ int score_update(const struct osl_row *aft_row, long percent)
        struct osl_row *row;
        long new_score;
        unsigned n, new_pos;
-       struct osl_object obj = {.data = aft_row, .size = sizeof(aft_row)};
+       struct osl_object obj = {.data = (struct osl_row *)aft_row,
+               .size = sizeof(aft_row)};
        int ret = osl_get_row(score_table, SCORECOL_AFT_ROW, &obj, &row);
 
+       if (ret == -E_OSL_RB_KEY_NOT_FOUND) /* not an error */
+               return 1;
        if (ret < 0)
                return ret;
        ret = get_num_admissible_files(&n);
@@ -226,7 +229,8 @@ int get_score_and_aft_row(struct osl_row *score_row, long *score,
 static int get_score_row_from_aft_row(const struct osl_row *aft_row,
                struct osl_row **score_row)
 {
-       struct osl_object obj = {.data = aft_row, .size = sizeof(aft_row)};
+       struct osl_object obj = {.data = (struct osl_row *)aft_row,
+               .size = sizeof(aft_row)};
        return osl_get_row(score_table, SCORECOL_AFT_ROW, &obj, score_row);
 
 }
@@ -323,7 +327,7 @@ int row_belongs_to_score_table(const struct osl_row *aft_row, unsigned *rank)
        struct osl_row *score_row;
        int ret = get_score_row_from_aft_row(aft_row, &score_row);
 
-       if (ret == -E_RB_KEY_NOT_FOUND)
+       if (ret == -E_OSL_RB_KEY_NOT_FOUND)
                return 0;
        if (ret < 0)
                return ret;