diff options
author | Amin Azez <azez@ufomechanic.net> | 2008-02-01 16:19:36 +0000 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2008-02-01 18:09:49 +0100 |
commit | 77a2870186d3b10ea15ba5e001e7a703f0a5ccaf (patch) | |
tree | 94997808407a5fd8d0eaf2bf63b7b41e82ab294b /source4/lib | |
parent | 0f9c453e12ffb03fc8359f726b1e93f3c7d17671 (diff) | |
download | samba-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.h | 4 |
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) /** |