Browse Source

talloc: define TALLOC_CTX

I'm not a fan of the SHOUTING, but it's upstream.
Rusty Russell 15 years ago
parent
commit
6b694061a5
1 changed files with 23 additions and 0 deletions
  1. 23 0
      ccan/talloc/talloc.h

+ 23 - 0
ccan/talloc/talloc.h

@@ -78,6 +78,29 @@
  */
  */
 #define talloc(ctx, type) (type *)talloc_named_const(ctx, sizeof(type), #type)
 #define talloc(ctx, type) (type *)talloc_named_const(ctx, sizeof(type), #type)
 
 
+/**
+ * TALLOC_CTX - indicate that a pointer is used as a talloc parent.
+ *
+ * As talloc is a hierarchial memory allocator, every talloc chunk is a
+ * potential parent to other talloc chunks. So defining a separate type for a
+ * talloc chunk is not strictly necessary. TALLOC_CTX is defined nevertheless,
+ * as it provides an indicator for function arguments.
+ *
+ * Example:
+ *	struct foo {
+ *		int val;
+ *	};
+ *
+ *	static struct foo *foo_new(TALLOC_CTX *mem_ctx)
+ *	{
+ *		struct foo *foo = talloc(mem_ctx, struct foo);
+ *		if (foo)
+ *			foo->val = 0;
+ *	return foo;
+ *	}
+ */
+typedef void TALLOC_CTX;
+
 /**
 /**
  * talloc_set - allocate dynamic memory for a type, into a pointer
  * talloc_set - allocate dynamic memory for a type, into a pointer
  * @ptr: pointer to the pointer to assign.
  * @ptr: pointer to the pointer to assign.