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 -- [email protected]
To unsubscribe send an email to [email protected]