diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2013-07-18 23:03:22 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2013-08-21 12:34:54 +0200 |
commit | 564e0fd94bd2bb451812e4218d64f28368a2411a (patch) | |
tree | 0558c019e935728052d2903ef652559e28ecccdf | |
parent | 0502646f9f68a37b00066247beb856bc781c6afa (diff) |
libmm-glib,signal: don't create a 'MMSignal' with an empty dictionary
-rw-r--r-- | libmm-glib/mm-signal.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/libmm-glib/mm-signal.c b/libmm-glib/mm-signal.c index b93e0bb4..57baf5d7 100644 --- a/libmm-glib/mm-signal.c +++ b/libmm-glib/mm-signal.c @@ -371,7 +371,7 @@ mm_signal_new_from_dictionary (GVariant *dictionary, GVariantIter iter; gchar *key; GVariant *value; - MMSignal *self; + MMSignal *self = NULL; if (!dictionary) { g_set_error (error, @@ -390,10 +390,10 @@ mm_signal_new_from_dictionary (GVariant *dictionary, return NULL; } - self = mm_signal_new (); g_variant_iter_init (&iter, dictionary); - while (!inner_error && - g_variant_iter_next (&iter, "{sv}", &key, &value)) { + while (!inner_error && g_variant_iter_next (&iter, "{sv}", &key, &value)) { + if (!self) + self = mm_signal_new (); consume_variant (self, key, value, @@ -405,8 +405,7 @@ mm_signal_new_from_dictionary (GVariant *dictionary, /* If error, destroy the object */ if (inner_error) { g_propagate_error (error, inner_error); - g_object_unref (self); - return NULL; + g_clear_object (&self); } return self; |