[clutter] Add diagnostic mode



commit 7d4a9c6f1e8e6f77688a5d15fc2644769d2a60a1
Author: Emmanuele Bassi <ebassi linux intel com>
Date:   Tue Dec 20 15:17:54 2011 +0000

    Add diagnostic mode
    
    GLib has a "diagnostic mode" switch that can be checked to enable debug
    messages on deprecated properties and signals, as these are purely
    run-time constructs, and as such cannot be caught by compiler warnings.
    The diagnostic mode is toggled by a simple environment variable, and
    can be used to ease porting of application code.
    
    We can use something similar to mark deprecated virtual functions and
    other run-time constructs; to avoid collisions, we should use our own
    environment variable, CLUTTER_ENABLE_DIAGNOSTIC.

 clutter/clutter-main.c    |   31 +++++++++++++++++++++++++++++++
 clutter/clutter-private.h |    4 ++++
 2 files changed, 35 insertions(+), 0 deletions(-)
---
diff --git a/clutter/clutter-main.c b/clutter/clutter-main.c
index 49ebd02..860fa6f 100644
--- a/clutter/clutter-main.c
+++ b/clutter/clutter-main.c
@@ -3752,3 +3752,34 @@ _clutter_debug_message (const char *format, ...)
   _clutter_debug_messagev (format, args);
   va_end (args);
 }
+
+gboolean
+_clutter_diagnostic_enabled (void)
+{
+  static const char *clutter_enable_diagnostic = NULL;
+
+  if (G_UNLIKELY (clutter_enable_diagnostic == NULL))
+    {
+      clutter_enable_diagnostic = g_getenv ("CLUTTER_ENABLE_DIAGNOSTIC");
+
+      if (clutter_enable_diagnostic == NULL)
+        clutter_enable_diagnostic = "0";
+    }
+
+  return *clutter_enable_diagnostic != '0';
+}
+
+void
+_clutter_diagnostic_message (const char *format, ...)
+{
+  va_list args;
+  char *fmt;
+
+  fmt = g_strconcat ("[DIAGNOSTIC]: ", format, NULL);
+
+  va_start (args, format);
+  g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, fmt, args);
+  va_end (args);
+
+  g_free (fmt);
+}
diff --git a/clutter/clutter-private.h b/clutter/clutter-private.h
index 103bc20..51841cf 100644
--- a/clutter/clutter-private.h
+++ b/clutter/clutter-private.h
@@ -210,6 +210,10 @@ const gchar *_clutter_gettext (const gchar *str);
 
 gboolean      _clutter_feature_init (GError **error);
 
+/* Diagnostic mode */
+gboolean        _clutter_diagnostic_enabled     (void);
+void            _clutter_diagnostic_message     (const char *fmt, ...);
+
 /* Picking code */
 guint           _clutter_pixel_to_id            (guchar        pixel[4]);
 void            _clutter_id_to_color            (guint         id,



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