Changeset: 076fb8fea0e4 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/076fb8fea0e4
Modified Files:
        gdk/gdk_utils.c
Branch: resource_management
Log Message:

fix wrong header arithmetic


diffs (32 lines):

diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -2256,8 +2256,9 @@ sa_realloc( allocator *sa, void *p, size
 static void *
 _sa_alloc_internal( allocator *sa, size_t sz )
 {
+       assert(sz > 0);
        sz = round16(sz);
-       char *r = sa_use_freed(sa, sz - SA_HEADER_SIZE);
+       char *r = sa_use_freed(sa, sz);
        if (r)
                return r;
        /* we don't want super large allocs for temp storage */
@@ -2321,7 +2322,7 @@ sa_alloc( allocator *sa, size_t sz )
        char* r = (char*) _sa_alloc_internal(sa, nsize);
        if (r) {
                // store size in header
-               *((size_t *) r) = nsize - SA_HEADER_SIZE;
+               *((size_t *) r) = nsize;
                return r + SA_HEADER_SIZE;
        }
        return NULL;
@@ -2460,7 +2461,7 @@ sa_free(allocator *sa, void *obj)
        char* ptr = (char *) obj - SA_HEADER_SIZE;
        size_t sz = *((size_t *) ptr);
        if (sz < SA_BLOCK_SIZE) {
-               sa_free_obj(sa, obj, sz);
+               sa_free_obj(sa, ptr, sz);
        } else {
                sa_free_blk(sa, ptr);
        }
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to