From: Victor Julien Date: Wed, 22 Jan 2014 15:30:50 +0000 (+0100) Subject: pool: remove tail tracking in alloc list X-Git-Tag: suricata-2.0rc1~166 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ee83809d8e4d5a04137cc6be717ee27f798b7cd5;p=thirdparty%2Fsuricata.git pool: remove tail tracking in alloc list The list fully acts like a stack now. --- diff --git a/src/util-pool.c b/src/util-pool.c index 40b005b1ac..d86fb52113 100644 --- a/src/util-pool.c +++ b/src/util-pool.c @@ -185,9 +185,6 @@ Pool *PoolInit(uint32_t size, uint32_t prealloc_size, uint32_t elt_size, void * pb->next = p->alloc_list; p->alloc_list = pb; - if (p->alloc_list_tail == NULL) { - p->alloc_list_tail = pb; - } p->alloc_list_size++; } else { PoolBucket *pb = p->empty_list; @@ -211,9 +208,6 @@ Pool *PoolInit(uint32_t size, uint32_t prealloc_size, uint32_t elt_size, void * pb->next = p->alloc_list; p->alloc_list = pb; - if (p->alloc_list_tail == NULL) { - p->alloc_list_tail = pb; - } p->alloc_list_size++; } } @@ -248,7 +242,6 @@ void PoolFree(Pool *p) { SCFree(pb); } } - p->alloc_list_tail = NULL; while (p->empty_list != NULL) { PoolBucket *pb = p->empty_list; @@ -289,8 +282,6 @@ void *PoolGet(Pool *p) { if (pb != NULL) { /* pull from the alloc list */ p->alloc_list = pb->next; - if (pb->next == NULL) - p->alloc_list_tail = NULL; p->alloc_list_size--; /* put in the empty list */ @@ -363,13 +354,8 @@ void PoolReturn(Pool *p, void *data) { p->empty_list_size--; /* put in the alloc list */ - pb->next = NULL; - if (p->alloc_list_tail == NULL) { - p->alloc_list = pb; - } else { - p->alloc_list_tail->next = pb; - } - p->alloc_list_tail = pb; + pb->next = p->alloc_list; + p->alloc_list = pb; p->alloc_list_size++; pb->data = data; diff --git a/src/util-pool.h b/src/util-pool.h index 5ad26b4873..da4c3dddc3 100644 --- a/src/util-pool.h +++ b/src/util-pool.h @@ -49,7 +49,6 @@ typedef struct Pool_ { uint32_t alloc_list_size; PoolBucket *alloc_list; - PoolBucket *alloc_list_tail; PoolBucket *empty_list; uint32_t empty_list_size;