Changeset: d3089be71c6d for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/d3089be71c6d Modified Files: gdk/gdk.h gdk/gdk_utils.c Branch: resource_management Log Message:
align size based on sa_alloc when freeing objects diffs (41 lines): diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -604,6 +604,7 @@ typedef struct allocator { size_t usedmem; /* used memory */ size_t objects; /* number of objects */ size_t inuse; /* number of objects in use*/ + size_t freelist_hits; /* number of object reuse*/ void *freelist; /* list of freed objects */ void *freelist_blks; /* list of freed blks */ diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c --- a/gdk/gdk_utils.c +++ b/gdk/gdk_utils.c @@ -2170,6 +2170,7 @@ sa_use_freed_obj(allocator *pa, size_t s } else { pa->freelist = curr->n; } + pa->freelist_hits += 1; return curr; } else { prev = curr; @@ -2235,6 +2236,7 @@ sa_create(allocator *pa) sa->used = 0; sa->objects = 0; sa->inuse = 0; + sa->freelist_hits = 0; sa->tmp_active = 0; sa->tmp_used = 0; return sa; @@ -2424,7 +2426,10 @@ sa_close( allocator *sa ) void sa_free(allocator *sa, void *obj, size_t sz) { + sz = round16(sz); // allign size as per sa_alloc if (sz < SA_BLOCK_SIZE) { sa_free_obj(sa, obj, sz); + } else { + sa_free_blk(sa, obj); } } _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org