X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=osl.c;h=7b4f91f59470089182b21b62d57a0bad5e324e54;hp=6294fbbe3f8900f3bf9830a30ccb8bfed150383a;hb=d237ec8d2fc5a697f4fa36832cfd6a037a8db7e6;hpb=97f53e18953fc2013c0b14f0261ac385e45b0284 diff --git a/osl.c b/osl.c index 6294fbbe..7b4f91f5 100644 --- a/osl.c +++ b/osl.c @@ -994,8 +994,14 @@ static void free_volatile_objects(const struct osl_table *t, for (n = rb_first(&rb_col->rbtree); n; n = rb_next(n)) { struct osl_row *r = get_row_pointer(n, rb_col->rbtree_num); if (flags & OSL_FREE_VOLATILE) - for (j = 0; j < t->num_volatile_columns; j++) - free(r->volatile_objects[j].data); + FOR_EACH_VOLATILE_COLUMN(j, t, cd) { + if (cd->storage_flags & OSL_DONT_FREE) + continue; + free(r->volatile_objects[ + t->columns[j].volatile_num].data); + } +// for (j = 0; j < t->num_volatile_columns; j++) +// free(r->volatile_objects[j].data); free(r->volatile_objects); } }