diff --git a/ChangeLog b/ChangeLog index 7537c3ef9f..6a235f91f0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-03-12 Dan Williams + + * src/nm-properties-changed-signal.c + - (add_to_string): better handling of NULL objects + 2008-03-12 Dan Williams Move the 'carrier' property from NMDevice to NMDevice8023Ethernet; diff --git a/src/nm-properties-changed-signal.c b/src/nm-properties-changed-signal.c index ab6853a554..8f89f64c43 100644 --- a/src/nm-properties-changed-signal.c +++ b/src/nm-properties-changed-signal.c @@ -55,9 +55,21 @@ add_to_string (gpointer key, gpointer value, gpointer user_data) GValue str_val = { 0, }; g_value_init (&str_val, G_TYPE_STRING); - g_value_transform ((GValue *) value, &str_val); + if (!g_value_transform ((GValue *) value, &str_val)) { + if (G_VALUE_HOLDS_OBJECT (value)) { + GObject *obj = g_value_get_object (value); - sprintf (buf + strlen (buf), "{%s: %s}, ", (const char *) key, g_value_get_string (&str_val)); + if (g_value_get_object (value)) { + sprintf (buf + strlen (buf), "{%s: %p (%s)}, ", + (const char *) key, obj, G_OBJECT_TYPE_NAME (obj)); + } else { + sprintf (buf + strlen (buf), "{%s: %p}, ", (const char *) key, obj); + } + } else + sprintf (buf + strlen (buf), "{%s: }, ", (const char *) key); + } else { + sprintf (buf + strlen (buf), "{%s: %s}, ", (const char *) key, g_value_get_string (&str_val)); + } g_value_unset (&str_val); } #endif