From 9ee6633373d8ea750963860381ecc15c7521e933 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Tue, 28 Oct 2014 16:05:16 -0500 Subject: fixup! libnm: queue added/removed signals and suppress uninitialized notifications --- libnm/nm-object.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/libnm/nm-object.c b/libnm/nm-object.c index 39975594d4..2023a74fa0 100644 --- a/libnm/nm-object.c +++ b/libnm/nm-object.c @@ -190,6 +190,7 @@ deferred_notify_cb (gpointer data) { NMObject *object = NM_OBJECT (data); NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (object); + NMObjectClass *object_class = NM_OBJECT_GET_CLASS (object); GSList *props, *iter; priv->notify_id = 0; @@ -229,8 +230,11 @@ deferred_notify_cb (gpointer data) case NOTIFY_SIGNAL_PENDING_REMOVED: ret = g_snprintf (buf, sizeof (buf), "%s-removed", item->signal_prefix); break; - case NOTIFY_SIGNAL_PENDING_NONE: case NOTIFY_SIGNAL_PENDING_ADDED_REMOVED: + if (object_class->object_creation_failed) + object_class->object_creation_failed (object, nm_object_get_path (item->changed)); + break; + case NOTIFY_SIGNAL_PENDING_NONE: default: break; } @@ -322,9 +326,11 @@ _nm_object_queue_notify_full (NMObject *object, item = g_slice_new0 (NotifyItem); item->property = property; - item->signal_prefix = signal_prefix; - item->pending = added ? NOTIFY_SIGNAL_PENDING_ADDED : NOTIFY_SIGNAL_PENDING_REMOVED; - item->changed = changed ? g_object_ref (changed) : NULL; + if (signal_prefix) { + item->signal_prefix = signal_prefix; + item->pending = added ? NOTIFY_SIGNAL_PENDING_ADDED : NOTIFY_SIGNAL_PENDING_REMOVED; + item->changed = changed ? g_object_ref (changed) : NULL; + } priv->notify_items = g_slist_prepend (priv->notify_items, item); } -- cgit v1.2.1