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:
parent
f9072b8663
commit
71f942d03a
@ -39,39 +39,39 @@ typedef enum {
|
|||||||
#ifdef CLUTTER_ENABLE_DEBUG
|
#ifdef CLUTTER_ENABLE_DEBUG
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
#define CLUTTER_NOTE(type,x,a...) G_STMT_START { \
|
#define CLUTTER_NOTE(type,x,a...) G_STMT_START { \
|
||||||
if (clutter_debug_flags & CLUTTER_DEBUG_##type) \
|
if (G_UNLIKELY (clutter_debug_flags & CLUTTER_DEBUG_##type)) \
|
||||||
{ g_message ("[" #type "] " G_STRLOC ": " x, ##a); } \
|
{ g_message ("[" #type "] " G_STRLOC ": " x, ##a); } \
|
||||||
} G_STMT_END
|
} G_STMT_END
|
||||||
|
|
||||||
#define CLUTTER_TIMESTAMP(type,x,a...) G_STMT_START { \
|
#define CLUTTER_TIMESTAMP(type,x,a...) G_STMT_START { \
|
||||||
if (clutter_debug_flags & CLUTTER_DEBUG_##type) \
|
if (G_UNLIKELY (clutter_debug_flags & CLUTTER_DEBUG_##type)) \
|
||||||
{ g_message ("[" #type "]" " %li:" G_STRLOC ": " \
|
{ g_message ("[" #type "]" " %li:" G_STRLOC ": " \
|
||||||
x, clutter_get_timestamp(), ##a); } \
|
x, clutter_get_timestamp(), ##a); } \
|
||||||
} G_STMT_END
|
} G_STMT_END
|
||||||
#else
|
#else
|
||||||
/* Try the C99 version; unfortunately, this does not allow us to pass
|
/* Try the C99 version; unfortunately, this does not allow us to pass
|
||||||
* empty arguments to the macro, which means we have to
|
* empty arguments to the macro, which means we have to
|
||||||
* do an intemediate printf.
|
* do an intemediate printf.
|
||||||
*/
|
*/
|
||||||
#define CLUTTER_NOTE(type,...) G_STMT_START { \
|
#define CLUTTER_NOTE(type,...) G_STMT_START { \
|
||||||
if (clutter_debug_flags & CLUTTER_DEBUG_##type) \
|
if (G_UNLIKELY (clutter_debug_flags & CLUTTER_DEBUG_##type)) \
|
||||||
{ \
|
{ \
|
||||||
gchar * _fmt = g_strdup_printf (__VA_ARGS__); \
|
gchar * _fmt = g_strdup_printf (__VA_ARGS__); \
|
||||||
g_message ("[" #type "] " G_STRLOC ": %s",_fmt); \
|
g_message ("[" #type "] " G_STRLOC ": %s",_fmt); \
|
||||||
g_free (_fmt); \
|
g_free (_fmt); \
|
||||||
} \
|
} \
|
||||||
} G_STMT_END
|
} G_STMT_END
|
||||||
|
|
||||||
#define CLUTTER_TIMESTAMP(type,...) G_STMT_START { \
|
#define CLUTTER_TIMESTAMP(type,...) G_STMT_START { \
|
||||||
if (clutter_debug_flags & CLUTTER_DEBUG_##type) \
|
if (G_UNLIKELY (clutter_debug_flags & CLUTTER_DEBUG_##type)) \
|
||||||
{ \
|
{ \
|
||||||
gchar * _fmt = g_strdup_printf (__VA_ARGS__); \
|
gchar * _fmt = g_strdup_printf (__VA_ARGS__); \
|
||||||
g_message ("[" #type "]" " %li:" G_STRLOC ": %s", \
|
g_message ("[" #type "]" " %li:" G_STRLOC ": %s", \
|
||||||
clutter_get_timestamp(), _fmt); \
|
clutter_get_timestamp(), _fmt); \
|
||||||
g_free (_fmt); \
|
g_free (_fmt); \
|
||||||
} \
|
} \
|
||||||
} G_STMT_END
|
} G_STMT_END
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define CLUTTER_MARK() CLUTTER_NOTE(MISC, "== mark ==")
|
#define CLUTTER_MARK() CLUTTER_NOTE(MISC, "== mark ==")
|
||||||
|
@ -52,18 +52,18 @@ typedef enum {
|
|||||||
#ifdef COGL_ENABLE_DEBUG
|
#ifdef COGL_ENABLE_DEBUG
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
#define COGL_NOTE(type,x,a...) G_STMT_START { \
|
#define COGL_NOTE(type,x,a...) G_STMT_START { \
|
||||||
if (cogl_debug_flags & COGL_DEBUG_##type) { \
|
if (G_UNLIKELY (cogl_debug_flags & COGL_DEBUG_##type)) { \
|
||||||
g_message ("[" #type "] " G_STRLOC ": " x, ##a); \
|
g_message ("[" #type "] " G_STRLOC ": " x, ##a); \
|
||||||
} } G_STMT_END
|
} } G_STMT_END
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#define COGL_NOTE(type,...) G_STMT_START { \
|
#define COGL_NOTE(type,...) G_STMT_START { \
|
||||||
if (cogl_debug_flags & COGL_DEBUG_##type) { \
|
if (G_UNLIKELY (cogl_debug_flags & COGL_DEBUG_##type)) { \
|
||||||
char *_fmt = g_strdup_printf (__VA_ARGS__); \
|
char *_fmt = g_strdup_printf (__VA_ARGS__); \
|
||||||
g_message ("[" #type "] " G_STRLOC ": %s", _fmt); \
|
g_message ("[" #type "] " G_STRLOC ": %s", _fmt); \
|
||||||
g_free (_fmt); \
|
g_free (_fmt); \
|
||||||
} } G_STMT_END
|
} } G_STMT_END
|
||||||
|
|
||||||
#endif /* __GNUC__ */
|
#endif /* __GNUC__ */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user