summaryrefslogtreecommitdiff
path: root/source4/lib
diff options
context:
space:
mode:
authorAmin Azez <azez@ufomechanic.net>2008-02-01 16:19:36 +0000
committerStefan Metzmacher <metze@samba.org>2008-02-01 18:09:49 +0100
commit77a2870186d3b10ea15ba5e001e7a703f0a5ccaf (patch)
tree94997808407a5fd8d0eaf2bf63b7b41e82ab294b /source4/lib
parent0f9c453e12ffb03fc8359f726b1e93f3c7d17671 (diff)
downloadsamba-77a2870186d3b10ea15ba5e001e7a703f0a5ccaf.tar.gz
samba-77a2870186d3b10ea15ba5e001e7a703f0a5ccaf.tar.bz2
samba-77a2870186d3b10ea15ba5e001e7a703f0a5ccaf.zip
Samba4 poor mans debug_ctx()
DEBUG(), DEBUGADD() and friends can now use debug_ctx() in the formatting expressions again, e.g. DEBUG(5,("Guid failed to match: %s\n", GUID_string(debug_ctx(), r->guid))); Sadly it's done with macros (again) but when we need to save the 8 or 16 bytes of object code per DEBUG() expression we can do it the Samba 3 way with added thread-safety for Samba 4. That could save up to 200K, allowing 12 bytes for each occurrance of DEBUG... Signed-off-by: Amin Azez <azez@ufomechanic.net> (This used to be commit 9781967542b00c279563d435aec72dac1e8c7e9a)
Diffstat (limited to 'source4/lib')
-rw-r--r--source4/lib/util/debug.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/source4/lib/util/debug.h b/source4/lib/util/debug.h
index 1895ed53ad..605628174a 100644
--- a/source4/lib/util/debug.h
+++ b/source4/lib/util/debug.h
@@ -41,13 +41,17 @@ struct debug_ops {
extern int DEBUGLEVEL;
+#define debug_ctx() (_debug_ctx?_debug_ctx:(_debug_ctx=talloc_new(NULL)))
+
#define DEBUGLVL(level) ((level) <= DEBUGLEVEL)
#define _DEBUG(level, body, header) do { \
if (DEBUGLVL(level)) { \
+ void* _debug_ctx=NULL; \
if (header) { \
do_debug_header(level, __location__, __FUNCTION__); \
} \
do_debug body; \
+ talloc_free(_debug_ctx); \
} \
} while (0)
/**