[clutter] Add diagnostic mode
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [clutter] Add diagnostic mode
- Date: Fri, 30 Dec 2011 10:29:37 +0000 (UTC)
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]