diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2010-04-28 13:29:55 -0400 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2010-04-28 13:29:55 -0400 |
commit | 863df68e894b7644dcd12da88aa22f73edf829dc (patch) | |
tree | b3825161dee33d3667c6714921aac8f5ebb86b46 | |
parent | 1d52151a19ed8ec776276aac5cc6ce3769e0d947 (diff) |
[object] Make debug code always available to the compiler
Such that we don't break debug build all the time.
-rw-r--r-- | src/hb-object-private.h | 42 |
1 files changed, 27 insertions, 15 deletions
diff --git a/src/hb-object-private.h b/src/hb-object-private.h index 81ab6c2..6aeb6ec 100644 --- a/src/hb-object-private.h +++ b/src/hb-object-private.h @@ -1,6 +1,6 @@ /* * Copyright (C) 2007 Chris Wilson - * Copyright (C) 2009 Red Hat, Inc. + * Copyright (C) 2009,2010 Red Hat, Inc. * * This is part of HarfBuzz, a text shaping library. * @@ -30,20 +30,8 @@ #ifndef HB_REFCOUNT_PRIVATE_H #define HB_REFCOUNT_PRIVATE_H +#include "hb-private.h" -#ifndef HB_DEBUG_OBJECT -#define HB_DEBUG_OBJECT HB_DEBUG -#endif - -#if HB_DEBUG_OBJECT -#include <stdio.h> -#define HB_OBJECT_DEBUG_OUT(obj) fprintf (stderr, "%p refcount=%d %s\n", \ - obj, \ - HB_REFERENCE_COUNT_GET_VALUE (obj->ref_count), \ - __FUNCTION__) -#else -#define HB_OBJECT_DEBUG_OUT(obj) 1 -#endif /* Encapsulate operations on the object's reference count */ @@ -68,7 +56,30 @@ typedef struct { -/* Helper macros */ +/* Debug */ + +#ifndef HB_DEBUG_OBJECT +#define HB_DEBUG_OBJECT HB_DEBUG+0 +#endif + +static HB_GNUC_UNUSED inline hb_bool_t /* always returns TRUE */ +_hb_object_debug_out (void *obj, + hb_reference_count_t *ref_count, + const char *function) +{ + if (HB_DEBUG_OBJECT) + fprintf (stderr, "%p refcount=%d %s\n", + obj, + HB_REFERENCE_COUNT_GET_VALUE (*ref_count), + function); + return TRUE; +} + +#define HB_OBJECT_DEBUG_OUT(obj) _hb_object_debug_out ((void *) obj, &obj->ref_count, __FUNCTION__) + + + +/* Object allocation and lifecycle manamgement macros */ #define HB_OBJECT_IS_INERT(obj) \ (HB_UNLIKELY (HB_REFERENCE_COUNT_IS_INVALID ((obj)->ref_count))) @@ -122,4 +133,5 @@ typedef struct { } HB_STMT_END + #endif /* HB_REFCOUNT_PRIVATE_H */ |