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>
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)
/**