From 564e0fd94bd2bb451812e4218d64f28368a2411a Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Thu, 18 Jul 2013 23:03:22 +0200 Subject: [PATCH] libmm-glib,signal: don't create a 'MMSignal' with an empty dictionary --- libmm-glib/mm-signal.c | 11 +++++------ 1 file 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;