Fix osl_del_row().
authorAndre Noll <maan@systemlinux.org>
Sun, 18 Nov 2007 19:47:59 +0000 (20:47 +0100)
committerAndre Noll <maan@systemlinux.org>
Sun, 18 Nov 2007 19:47:59 +0000 (20:47 +0100)
Only free volatile columns of the deleted row if OSL_DONT_FREE
is not set.

osl.c

diff --git a/osl.c b/osl.c
index 7b4f91f..5c80641 100644 (file)
--- a/osl.c
+++ b/osl.c
@@ -1575,7 +1575,7 @@ int osl_del_row(struct osl_table *t, struct osl_row *row)
                        mark_mapped_object_invalid(t, r->num, i);
                        continue;
                }
-               if (st == OSL_NO_STORAGE)
+               if (st == OSL_NO_STORAGE && !(cd->storage_flags & OSL_DONT_FREE))
                        free(r->volatile_objects[col->volatile_num].data);
        }
        if (t->num_mapped_columns) {