diff --git a/cogl/cogl-debug.h b/cogl/cogl-debug.h index efb60e1ca..abe8f9e79 100644 --- a/cogl/cogl-debug.h +++ b/cogl/cogl-debug.h @@ -72,17 +72,16 @@ typedef enum { COGL_DEBUG_N_FLAGS } CoglDebugFlags; -#ifdef COGL_ENABLE_DEBUG - +extern GHashTable *_cogl_debug_instances; #define COGL_DEBUG_N_LONGS COGL_FLAGS_N_LONGS_FOR_SIZE (COGL_DEBUG_N_FLAGS) +#ifdef COGL_ENABLE_DEBUG + /* _cogl_debug_flags currently needs to exported outside of the shared library for cogl-pango. The special COGL_EXPORT macro is needed to get this to work when building with MSVC */ COGL_EXPORT extern unsigned long _cogl_debug_flags[COGL_DEBUG_N_LONGS]; -extern GHashTable *_cogl_debug_instances; - #define COGL_DEBUG_ENABLED(flag) \ COGL_FLAGS_GET (_cogl_debug_flags, flag) diff --git a/cogl/cogl-framebuffer.c b/cogl/cogl-framebuffer.c index 9945b2bcc..bae5c019b 100644 --- a/cogl/cogl-framebuffer.c +++ b/cogl/cogl-framebuffer.c @@ -119,7 +119,9 @@ typedef struct _CoglFramebufferStackEntry extern CoglObjectClass _cogl_onscreen_class; +#ifdef COGL_ENABLE_DEBUG static CoglUserDataKey wire_pipeline_key; +#endif static void _cogl_offscreen_free (CoglOffscreen *offscreen); diff --git a/cogl/cogl-util.h b/cogl/cogl-util.h index 44589857b..67861bc55 100644 --- a/cogl/cogl-util.h +++ b/cogl/cogl-util.h @@ -175,7 +175,18 @@ _cogl_util_popcountl (unsigned long num) #define _COGL_RETURN_IF_FAIL(EXPR) g_return_if_fail(EXPR) #define _COGL_RETURN_VAL_IF_FAIL(EXPR, VAL) g_return_val_if_fail(EXPR, VAL) #else -#define _COGL_RETURN_IF_FAIL(EXPR) do { \ +#if COGL_ENABLE_DEBUG +#define _COGL_RETURN_START do { +#define _COGL_RETURN_END } while (0) +#else /* COGL_ENABLE_DEBUG */ +/* If debugging is disabled then we don't actually want to do the + * check but we still want the code for the expression to be generated + * so that it won't give loads of warnings about unused variables. + * Therefore we just surround the block with if(0) */ +#define _COGL_RETURN_START do { if (0) { +#define _COGL_RETURN_END } } while (0) +#endif /* COGL_ENABLE_DEBUG */ +#define _COGL_RETURN_IF_FAIL(EXPR) _COGL_RETURN_START { \ if (!(EXPR)) \ { \ fprintf (stderr, "file %s: line %d: assertion `%s' failed", \ @@ -184,8 +195,8 @@ _cogl_util_popcountl (unsigned long num) #EXPR); \ return; \ }; \ - } while(0) -#define _COGL_RETURN_VAL_IF_FAIL(EXPR, VAL) do { \ + } _COGL_RETURN_END +#define _COGL_RETURN_VAL_IF_FAIL(EXPR, VAL) _COGL_RETURN_START { \ if (!(EXPR)) \ { \ fprintf (stderr, "file %s: line %d: assertion `%s' failed", \ @@ -194,7 +205,7 @@ _cogl_util_popcountl (unsigned long num) #EXPR); \ return (VAL); \ }; \ - } while(0) + } _COGL_RETURN_END #endif /* COGL_HAS_GLIB_SUPPORT */ /* Match a CoglPixelFormat according to channel masks, color depth, diff --git a/configure.ac b/configure.ac index 3ed9b2fc1..f273dbd72 100644 --- a/configure.ac +++ b/configure.ac @@ -181,11 +181,11 @@ AS_CASE( [yes], [ test "$cflags_set" = set || CFLAGS="$CFLAGS -g -O0" - COGL_EXTRA_CFLAGS="$COGL_EXTRA_CFLAGS -DCOGL_GL_DEBUG -DCOGL_OBJECT_DEBUG -DCOGL_HANDLE_DEBUG -DCOGL_ENABLE_DEBUG" + COGL_EXTRA_CFLAGS="$COGL_EXTRA_CFLAGS -DCOGL_GL_DEBUG -DCOGL_OBJECT_DEBUG -DCOGL_ENABLE_DEBUG" ], [no], [ - COGL_EXTRA_CFLAGS="$COGL_EXTRA_CFLAGS -DCOGL_ENABLE_DEBUG -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS" + COGL_EXTRA_CFLAGS="$COGL_EXTRA_CFLAGS -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS" ], [AC_MSG_ERROR([Unknown argument for --enable-debug])] )