From: Emmanuele Bassi Date: Tue, 20 Dec 2011 15:17:54 +0000 (+0000) Subject: Add diagnostic mode X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7d4a9c6f1e8e6f77688a5d15fc2644769d2a60a1;p=profile%2Fivi%2Fclutter.git 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. --- 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,