added talloc_enable_null_tracking()
authortridge <>
Mon, 21 Mar 2005 20:27:24 +0000 (20:27 +0000)
committertridge <>
Mon, 21 Mar 2005 20:27:24 +0000 (20:27 +0000)
talloc/talloc.c
talloc/talloc.h
talloc/talloc_guide.txt

index 31796a247ba593955d9f53ab37ebb536d21dd753..2b41386ece73703c2d166ee185677899a0d8c04c 100644 (file)
@@ -810,12 +810,22 @@ static void talloc_report_null_full(void)
        }
 }
 
+/*
+  enable tracking of the NULL context
+*/
+void talloc_enable_null_tracking(void)
+{
+       if (null_context == NULL) {
+               null_context = talloc_named_const(NULL, 0, "null_context");
+       }
+}
+
 /*
   enable leak reporting on exit
 */
 void talloc_enable_leak_report(void)
 {
-       null_context = talloc_named_const(NULL, 0, "null_context");
+       talloc_enable_null_tracking();
        atexit(talloc_report_null);
 }
 
@@ -824,7 +834,7 @@ void talloc_enable_leak_report(void)
 */
 void talloc_enable_leak_report_full(void)
 {
-       null_context = talloc_named_const(NULL, 0, "null_context");
+       talloc_enable_null_tracking();
        atexit(talloc_report_null_full);
 }
 
index f639f3c8cfaef2fb21dce0fad071fbf4e04a0046..8b448f63c55ed3f466eedae84dd57699c8370c3f 100644 (file)
@@ -110,6 +110,7 @@ off_t talloc_total_size(const void *ptr);
 off_t talloc_total_blocks(const void *ptr);
 void talloc_report_full(const void *ptr, FILE *f);
 void talloc_report(const void *ptr, FILE *f);
+void talloc_enable_null_tracking(void);
 void talloc_enable_leak_report(void);
 void talloc_enable_leak_report_full(void);
 void *_talloc_zero(const void *ctx, size_t size, const char *name);
index 4ab0f8eacc3c70a46ae6ee11978ebe4f76fc4110..5c9b7dcae762afbcd9e13cca77729db721a9c149 100644 (file)
@@ -407,6 +407,14 @@ full talloc report on 'root' (total 18 bytes in 8 blocks)
         x1                             contains      1 bytes in   1 blocks (ref 0)
 
 
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+void talloc_enable_null_tracking(void);
+
+This enables tracking of the NULL memory context without enabling leak
+reporting on exit. Useful for when you want to do your own leak
+reporting call via talloc_report_null_full();
+
+
 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 (type *)talloc_zero(const void *ctx, type);