Add the calls to make use of talloc_pools in a talloc_stackframe.
authorJeremy Allison <jra@samba.org>
Thu, 10 Jan 2008 01:07:58 +0000 (17:07 -0800)
committerJeremy Allison <jra@samba.org>
Thu, 10 Jan 2008 01:07:58 +0000 (17:07 -0800)
Jeremy.
(This used to be commit d27e6c0548d21394f6399d3b737d175ffed8420d)

source3/include/talloc_stack.h
source3/lib/talloc_stack.c

index 331893cbd6184e2367d82a4d27174f56f146f261..a2a12f8a633ba15c4785f69f0cccfd90db5fbf52 100644 (file)
@@ -45,6 +45,7 @@
  */
 
 TALLOC_CTX *talloc_stackframe(void);
+TALLOC_CTX *talloc_stackframe_pool(size_t poolsize);
 
 /*
  * Get us the current top of the talloc stack.
index d887b2d4154abf54919105279ea517963c57211c..08ef2281eac24af74eb6e2e82f11f72ef644d94e 100644 (file)
@@ -64,7 +64,7 @@ static int talloc_pop(TALLOC_CTX *frame)
  * not explicitly freed.
  */
 
-TALLOC_CTX *talloc_stackframe(void)
+static TALLOC_CTX *talloc_stackframe_internal(size_t poolsize)
 {
        TALLOC_CTX **tmp, *top;
 
@@ -78,7 +78,11 @@ TALLOC_CTX *talloc_stackframe(void)
                talloc_stack_arraysize = talloc_stacksize + 1;
         }
 
-       top = talloc_new(talloc_stack);
+       if (poolsize) {
+               top = talloc_pool(talloc_stack, poolsize);
+       } else {
+               top = talloc_new(talloc_stack);
+       }
 
        if (top == NULL) {
                goto fail;
@@ -94,6 +98,16 @@ TALLOC_CTX *talloc_stackframe(void)
        return NULL;
 }
 
+TALLOC_CTX *talloc_stackframe(void)
+{
+       return talloc_stackframe_internal(0);
+}
+
+TALLOC_CTX *talloc_stackframe_pool(size_t poolsize)
+{
+       return talloc_stackframe_internal(poolsize);
+}
+
 /*
  * Get us the current top of the talloc stack.
  */