]> git.ipfire.org Git - people/ms/suricata.git/commitdiff
pool: remove tail tracking in alloc list
authorVictor Julien <victor@inliniac.net>
Wed, 22 Jan 2014 15:30:50 +0000 (16:30 +0100)
committerVictor Julien <victor@inliniac.net>
Wed, 22 Jan 2014 15:49:02 +0000 (16:49 +0100)
The list fully acts like a stack now.

src/util-pool.c
src/util-pool.h

index 40b005b1ac63a873d9ab5937138b6c5995026222..d86fb5211308a2ed8f4604bc5c043285251c1a76 100644 (file)
@@ -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;
index 5ad26b4873bacb1f24b2641f40fac7074442e7a4..da4c3dddc34b546a4a957eddf04132afd42eebbb 100644 (file)
@@ -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;