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);
}
}