X-Git-Url: http://git.tuebingen.mpg.de/?p=osl.git;a=blobdiff_plain;f=osl.c;h=9480325ea8ab3c81977bfd33c892e11f3b524eb9;hp=40b0a24f38bea36b2379836ee447f0e2923e726d;hb=HEAD;hpb=53ef87d70bcddd1678edaeeeb5f4e0b0cb55c843 diff --git a/osl.c b/osl.c index 40b0a24..9480325 100644 --- a/osl.c +++ b/osl.c @@ -168,7 +168,7 @@ static char *disk_storage_name_of_object(const struct osl_table *t, const struct osl_object *obj) { HASH_TYPE hash[HASH_SIZE]; - hash_object(obj, hash); + hash_object(t, obj, hash); return disk_storage_name_of_hash(t, hash); } @@ -186,9 +186,10 @@ static int disk_storage_name_of_row(const struct osl_table *t, return -E_OSL_NOMEM; } -static void column_name_hash(const char *col_name, HASH_TYPE *hash) +static void column_name_hash(const struct osl_table *t, const char *col_name, + HASH_TYPE *hash) { - hash_function(col_name, strlen(col_name), hash); + hash_function(t->version, col_name, strlen(col_name), hash); } static int init_column_descriptions(struct osl_table *t) @@ -553,7 +554,7 @@ __export int osl_create_table(const struct osl_table_description *desc) if (ret < 0) goto out; } - column_name_hash(cd->name, t->columns[i].name_hash); + column_name_hash(t, cd->name, t->columns[i].name_hash); ret = -E_OSL_NOMEM; filename = column_filename(t, i); if (!filename) @@ -724,7 +725,7 @@ int map_table(struct osl_table *t, enum map_table_flags flags) FOR_EACH_COLUMN(i, t->desc, cd) { if (cd->storage_type == OSL_NO_STORAGE) continue; - column_name_hash(cd->name, t->columns[i].name_hash); + column_name_hash(t, cd->name, t->columns[i].name_hash); if (num_rows > 0 && cd->storage_type == OSL_MAPPED_STORAGE) { ret = map_column(t, i); if (ret < 0) @@ -996,12 +997,13 @@ __export int osl_close_table(struct osl_table *t, enum osl_close_flags flags) int row_is_invalid(struct osl_table *t, uint32_t row_num) { char *row_index; - int i, ret = get_row_index(t, row_num, &row_index); + int ret = get_row_index(t, row_num, &row_index); + unsigned n; if (ret < 0) return ret; - for (i = 0; i < t->row_index_size; i++) { - if ((unsigned char)row_index[i] != 0xff) + for (n = 0; n < t->row_index_size; n++) { + if ((unsigned char)row_index[n] != 0xff) return 0; } INFO_LOG("row %d is invalid\n", row_num); @@ -1040,17 +1042,18 @@ int mark_row_invalid(struct osl_table *t, uint32_t row_num) */ int init_rbtrees(struct osl_table *t) { - int i, ret; + int ret; + unsigned n; const struct osl_column_description *cd; /* create rbtrees */ - FOR_EACH_RBTREE_COLUMN(i, t, cd) - t->columns[i].rbtree = RB_ROOT; + FOR_EACH_RBTREE_COLUMN(n, t, cd) + t->columns[n].rbtree = RB_ROOT; /* add valid rows to rbtrees */ t->num_invalid_rows = 0; - for (i = 0; i < t->num_rows; i++) { + for (n = 0; n < t->num_rows; n++) { struct osl_object *volatile_objs; - ret = row_is_invalid(t, i); + ret = row_is_invalid(t, n); if (ret < 0) return ret; if (ret) { @@ -1064,7 +1067,7 @@ int init_rbtrees(struct osl_table *t) return -E_OSL_NOMEM; } else volatile_objs = NULL; - ret = add_row_to_rbtrees(t, i, volatile_objs, NULL); + ret = add_row_to_rbtrees(t, n, volatile_objs, NULL); if (ret < 0) return ret; }