debug: Use G_UNLIKELY in the tests
Debugging code is not meant to be run in the nominal code path. Use G_UNLIKELY to be reduce the number of bubbles in the instruction pipeline. Took the opportunity to re-indent the macros.
This commit is contained in:
@ -39,39 +39,39 @@ typedef enum {
|
||||
#ifdef CLUTTER_ENABLE_DEBUG
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define CLUTTER_NOTE(type,x,a...) G_STMT_START { \
|
||||
if (clutter_debug_flags & CLUTTER_DEBUG_##type) \
|
||||
{ g_message ("[" #type "] " G_STRLOC ": " x, ##a); } \
|
||||
} G_STMT_END
|
||||
#define CLUTTER_NOTE(type,x,a...) G_STMT_START { \
|
||||
if (G_UNLIKELY (clutter_debug_flags & CLUTTER_DEBUG_##type)) \
|
||||
{ g_message ("[" #type "] " G_STRLOC ": " x, ##a); } \
|
||||
} G_STMT_END
|
||||
|
||||
#define CLUTTER_TIMESTAMP(type,x,a...) G_STMT_START { \
|
||||
if (clutter_debug_flags & CLUTTER_DEBUG_##type) \
|
||||
{ g_message ("[" #type "]" " %li:" G_STRLOC ": " \
|
||||
x, clutter_get_timestamp(), ##a); } \
|
||||
} G_STMT_END
|
||||
#define CLUTTER_TIMESTAMP(type,x,a...) G_STMT_START { \
|
||||
if (G_UNLIKELY (clutter_debug_flags & CLUTTER_DEBUG_##type)) \
|
||||
{ g_message ("[" #type "]" " %li:" G_STRLOC ": " \
|
||||
x, clutter_get_timestamp(), ##a); } \
|
||||
} G_STMT_END
|
||||
#else
|
||||
/* Try the C99 version; unfortunately, this does not allow us to pass
|
||||
* empty arguments to the macro, which means we have to
|
||||
* do an intemediate printf.
|
||||
*/
|
||||
#define CLUTTER_NOTE(type,...) G_STMT_START { \
|
||||
if (clutter_debug_flags & CLUTTER_DEBUG_##type) \
|
||||
{ \
|
||||
gchar * _fmt = g_strdup_printf (__VA_ARGS__); \
|
||||
g_message ("[" #type "] " G_STRLOC ": %s",_fmt); \
|
||||
g_free (_fmt); \
|
||||
} \
|
||||
} G_STMT_END
|
||||
#define CLUTTER_NOTE(type,...) G_STMT_START { \
|
||||
if (G_UNLIKELY (clutter_debug_flags & CLUTTER_DEBUG_##type)) \
|
||||
{ \
|
||||
gchar * _fmt = g_strdup_printf (__VA_ARGS__); \
|
||||
g_message ("[" #type "] " G_STRLOC ": %s",_fmt); \
|
||||
g_free (_fmt); \
|
||||
} \
|
||||
} G_STMT_END
|
||||
|
||||
#define CLUTTER_TIMESTAMP(type,...) G_STMT_START { \
|
||||
if (clutter_debug_flags & CLUTTER_DEBUG_##type) \
|
||||
{ \
|
||||
gchar * _fmt = g_strdup_printf (__VA_ARGS__); \
|
||||
g_message ("[" #type "]" " %li:" G_STRLOC ": %s", \
|
||||
clutter_get_timestamp(), _fmt); \
|
||||
g_free (_fmt); \
|
||||
} \
|
||||
} G_STMT_END
|
||||
#define CLUTTER_TIMESTAMP(type,...) G_STMT_START { \
|
||||
if (G_UNLIKELY (clutter_debug_flags & CLUTTER_DEBUG_##type)) \
|
||||
{ \
|
||||
gchar * _fmt = g_strdup_printf (__VA_ARGS__); \
|
||||
g_message ("[" #type "]" " %li:" G_STRLOC ": %s", \
|
||||
clutter_get_timestamp(), _fmt); \
|
||||
g_free (_fmt); \
|
||||
} \
|
||||
} G_STMT_END
|
||||
#endif
|
||||
|
||||
#define CLUTTER_MARK() CLUTTER_NOTE(MISC, "== mark ==")
|
||||
|
Reference in New Issue
Block a user