* not explicitly freed.
*/
-static TALLOC_CTX *talloc_stackframe_internal(size_t poolsize)
+static TALLOC_CTX *talloc_stackframe_internal(const char *location,
+ size_t poolsize)
{
TALLOC_CTX **tmp, *top;
struct talloc_stackframe *ts =
if (top == NULL) {
goto fail;
}
-
+ talloc_set_name_const(top, location);
talloc_set_destructor(top, talloc_pop);
ts->talloc_stack[ts->talloc_stacksize++] = top;
return NULL;
}
-TALLOC_CTX *talloc_stackframe(void)
+TALLOC_CTX *_talloc_stackframe(const char *location)
{
- return talloc_stackframe_internal(0);
+ return talloc_stackframe_internal(location, 0);
}
-TALLOC_CTX *talloc_stackframe_pool(size_t poolsize)
+TALLOC_CTX *_talloc_stackframe_pool(const char *location, size_t poolsize)
{
- return talloc_stackframe_internal(poolsize);
+ return talloc_stackframe_internal(location, poolsize);
}
/*
* not explicitly freed.
*/
-TALLOC_CTX *talloc_stackframe(void);
-TALLOC_CTX *talloc_stackframe_pool(size_t poolsize);
+#define talloc_stackframe() _talloc_stackframe(__location__)
+#define talloc_stackframe_pool(sz) _talloc_stackframe_pool(__location__, (sz))
+TALLOC_CTX *_talloc_stackframe(const char *location);
+TALLOC_CTX *_talloc_stackframe_pool(const char *location, size_t poolsize);
/*
* Get us the current top of the talloc stack.