[pango] [HB] Allow enabling different debug facilities individually



commit a9ab729acf465253f29a65481eb8730d1547f974
Author: Behdad Esfahbod <behdad behdad org>
Date:   Fri Aug 28 16:31:20 2009 -0400

    [HB] Allow enabling different debug facilities individually

 pango/opentype/hb-blob.c               |   28 ++++++++++++++++------------
 pango/opentype/hb-open-type-private.hh |   32 ++++++++++++++++++--------------
 2 files changed, 34 insertions(+), 26 deletions(-)
---
diff --git a/pango/opentype/hb-blob.c b/pango/opentype/hb-blob.c
index 8babc76..107cd43 100644
--- a/pango/opentype/hb-blob.c
+++ b/pango/opentype/hb-blob.c
@@ -35,6 +35,10 @@
 #include <sys/mman.h>
 #endif /* HAVE_SYS_MMAN_H */
 
+#ifndef HB_DEBUG_BLOB
+#define HB_DEBUG_BLOB HB_DEBUG
+#endif
+
 struct _hb_blob_t {
   hb_reference_count_t ref_count;
 
@@ -189,7 +193,7 @@ hb_blob_lock (hb_blob_t *blob)
   hb_mutex_lock (blob->lock);
 
   blob->lock_count++;
-#if HB_DEBUG
+#if HB_DEBUG_BLOB
   fprintf (stderr, "%p %s (%d) -> %p\n", blob, __FUNCTION__,
 	   blob->lock_count, blob->data);
 #endif
@@ -209,7 +213,7 @@ hb_blob_unlock (hb_blob_t *blob)
 
   assert (blob->lock_count > 0);
   blob->lock_count--;
-#if HB_DEBUG
+#if HB_DEBUG_BLOB
   fprintf (stderr, "%p %s (%d) -> %p\n", blob, __FUNCTION__,
 	   hb_atomic_int_get (blob->lock_count), blob->data);
 #endif
@@ -251,31 +255,31 @@ _try_make_writable_inplace_unix_locked (hb_blob_t *blob)
 #endif
 
   if ((unsigned int) -1 == pagesize) {
-#if HB_DEBUG
+#if HB_DEBUG_BLOB
     fprintf (stderr, "%p %s: failed to get pagesize: %s\n", blob, __FUNCTION__, strerror (errno));
 #endif
     return FALSE;
   }
-#if HB_DEBUG
+#if HB_DEBUG_BLOB
   fprintf (stderr, "%p %s: pagesize is %u\n", blob, __FUNCTION__, pagesize);
 #endif
 
   mask = ~(pagesize-1);
   addr = (const char *) (((size_t) blob->data) & mask);
   length = (const char *) (((size_t) blob->data + blob->length + pagesize-1) & mask)  - addr;
-#if HB_DEBUG
+#if HB_DEBUG_BLOB
   fprintf (stderr, "%p %s: calling mprotect on [%p..%p] (%d bytes)\n",
 	   blob, __FUNCTION__,
 	   addr, addr+length, length);
 #endif
   if (-1 == mprotect ((void *) addr, length, PROT_READ | PROT_WRITE)) {
-#if HB_DEBUG
+#if HB_DEBUG_BLOB
     fprintf (stderr, "%p %s: %s\n", blob, __FUNCTION__, strerror (errno));
 #endif
     return FALSE;
   }
 
-#if HB_DEBUG
+#if HB_DEBUG_BLOB
   fprintf (stderr, "%p %s: successfully made [%p..%p] (%d bytes) writable\n",
 	   blob, __FUNCTION__,
 	   addr, addr+length, length);
@@ -289,17 +293,17 @@ _try_make_writable_inplace_unix_locked (hb_blob_t *blob)
 static void
 _try_writable_inplace_locked (hb_blob_t *blob)
 {
-#if HB_DEBUG
+#if HB_DEBUG_BLOB
   fprintf (stderr, "%p %s: making writable\n", blob, __FUNCTION__);
 #endif
 
   if (_try_make_writable_inplace_unix_locked (blob)) {
-#if HB_DEBUG
+#if HB_DEBUG_BLOB
     fprintf (stderr, "%p %s: making writable -> succeeded\n", blob, __FUNCTION__);
 #endif
     blob->mode = HB_MEMORY_MODE_WRITABLE;
   } else {
-#if HB_DEBUG
+#if HB_DEBUG_BLOB
     fprintf (stderr, "%p %s: making writable -> FAILED\n", blob, __FUNCTION__);
 #endif
     /* Failed to make writable inplace, mark that */
@@ -341,7 +345,7 @@ hb_blob_try_writable (hb_blob_t *blob)
   {
     char *new_data;
 
-#if HB_DEBUG
+#if HB_DEBUG_BLOB
     fprintf (stderr, "%p %s (%d) -> %p\n", blob, __FUNCTION__,
 	     blob->lock_count, blob->data);
 #endif
@@ -351,7 +355,7 @@ hb_blob_try_writable (hb_blob_t *blob)
 
     new_data = malloc (blob->length);
     if (new_data) {
-#if HB_DEBUG
+#if HB_DEBUG_BLOB
       fprintf (stderr, "%p %s: dupped successfully -> %p\n", blob, __FUNCTION__, blob->data);
 #endif
       memcpy (new_data, blob->data, blob->length);
diff --git a/pango/opentype/hb-open-type-private.hh b/pango/opentype/hb-open-type-private.hh
index 96a26ad..aec4b8e 100644
--- a/pango/opentype/hb-open-type-private.hh
+++ b/pango/opentype/hb-open-type-private.hh
@@ -109,13 +109,17 @@ struct Null <Type> \
  * Sanitize
  */
 
-#if HB_DEBUG
+#ifndef HB_DEBUG_SANITIZE
+#define HB_DEBUG_SANITIZE HB_DEBUG
+#endif
+
+#if HB_DEBUG_SANITIZE
 #define SANITIZE_DEBUG_ARG_DEF	, unsigned int sanitize_depth
 #define SANITIZE_DEBUG_ARG	, sanitize_depth + 1
 #define SANITIZE_DEBUG_ARG_INIT	, 1
 #define SANITIZE_DEBUG() \
 	HB_STMT_START { \
-	    if (sanitize_depth < HB_DEBUG) \
+	    if (sanitize_depth < HB_DEBUG_SANITIZE) \
 		fprintf (stderr, "SANITIZE(%p) %-*d-> %s\n", \
 			 (CONST_CHARP (this) == NullPool) ? 0 : this, \
 			 sanitize_depth, sanitize_depth, \
@@ -152,7 +156,7 @@ _hb_sanitize_init (hb_sanitize_context_t *context,
   context->end = context->start + hb_blob_get_length (blob);
   context->edit_count = 0;
 
-#if HB_DEBUG
+#if HB_DEBUG_SANITIZE
   fprintf (stderr, "sanitize %p init [%p..%p] (%u bytes)\n",
 	   context->blob, context->start, context->end, context->end - context->start);
 #endif
@@ -162,7 +166,7 @@ static HB_GNUC_UNUSED void
 _hb_sanitize_fini (hb_sanitize_context_t *context,
 		   bool unlock)
 {
-#if HB_DEBUG
+#if HB_DEBUG_SANITIZE
   fprintf (stderr, "sanitize %p fini [%p..%p] %u edit requests\n",
 	   context->blob, context->start, context->end, context->edit_count);
 #endif
@@ -180,8 +184,8 @@ _hb_sanitize_check (SANITIZE_ARG_DEF,
 	     base <= context->end &&
 	     (unsigned int) (context->end - base) >= len;
 
-#if HB_DEBUG
-  if (sanitize_depth < HB_DEBUG) \
+#if HB_DEBUG_SANITIZE
+  if (sanitize_depth < HB_DEBUG_SANITIZE) \
     fprintf (stderr, "SANITIZE(%p) %-*d-> check [%p..%p] (%d bytes) in [%p..%p] -> %s\n", \
 	     base,
 	     sanitize_depth, sanitize_depth,
@@ -200,8 +204,8 @@ _hb_sanitize_array (SANITIZE_ARG_DEF,
 {
   bool overflows = len >= ((unsigned int) -1) / record_size;
 
-#if HB_DEBUG
-  if (sanitize_depth < HB_DEBUG) \
+#if HB_DEBUG_SANITIZE
+  if (sanitize_depth < HB_DEBUG_SANITIZE) \
     fprintf (stderr, "SANITIZE(%p) %-*d-> array [%p..%p] (%d*%d=%ld bytes) in [%p..%p] -> %s\n", \
 	     base,
 	     sanitize_depth, sanitize_depth,
@@ -220,7 +224,7 @@ _hb_sanitize_edit (SANITIZE_ARG_DEF,
   bool perm = hb_blob_try_writable_inplace (context->blob);
   context->edit_count++;
 
-#if HB_DEBUG
+#if HB_DEBUG_SANITIZE
   fprintf (stderr, "SANITIZE(%p) %-*d-> edit(%u) [%p..%p] (%d bytes) in [%p..%p] -> %s\n", \
 	   base,
 	   sanitize_depth, sanitize_depth,
@@ -268,7 +272,7 @@ struct Sanitizer
     /* TODO is_sane() stuff */
 
   retry:
-#if HB_DEBUG
+#if HB_DEBUG_SANITIZE
     fprintf (stderr, "Sanitizer %p start %s\n", blob, __PRETTY_FUNCTION__);
 #endif
 
@@ -279,7 +283,7 @@ struct Sanitizer
     sane = t->sanitize (SANITIZE_ARG_INIT);
     if (sane) {
       if (context.edit_count) {
-#if HB_DEBUG
+#if HB_DEBUG_SANITIZE
 	fprintf (stderr, "Sanitizer %p passed first round with %d edits; going a second round %s\n",
 		 blob, context.edit_count, __PRETTY_FUNCTION__);
 #endif
@@ -287,7 +291,7 @@ struct Sanitizer
         context.edit_count = 0;
 	sane = t->sanitize (SANITIZE_ARG_INIT);
 	if (context.edit_count) {
-#if HB_DEBUG
+#if HB_DEBUG_SANITIZE
 	  fprintf (stderr, "Sanitizer %p requested %d edits in second round; FAILLING %s\n",
 		   blob, context.edit_count, __PRETTY_FUNCTION__);
 #endif
@@ -300,14 +304,14 @@ struct Sanitizer
       _hb_sanitize_fini (&context, true);
       if (edit_count && !hb_blob_is_writable (blob) && hb_blob_try_writable (blob)) {
         /* ok, we made it writable by relocating.  try again */
-#if HB_DEBUG
+#if HB_DEBUG_SANITIZE
 	fprintf (stderr, "Sanitizer %p retry %s\n", blob, __PRETTY_FUNCTION__);
 #endif
         goto retry;
       }
     }
 
-#if HB_DEBUG
+#if HB_DEBUG_SANITIZE
     fprintf (stderr, "Sanitizer %p %s %s\n", blob, sane ? "passed" : "FAILED", __PRETTY_FUNCTION__);
 #endif
     if (sane)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]