* not explicitly freed.
*/
-TALLOC_CTX *talloc_stackframe(void)
+static TALLOC_CTX *talloc_stackframe_internal(size_t poolsize)
{
TALLOC_CTX **tmp, *top;
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;
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.
*/