Diff between 819a9ea87f0d0d160ec27eb40ea9edce27c02184 and 1997090d42147827aa959d788d73aefbe5c34a9f
Changed Files
| File | Additions | Deletions | Status |
| gdbus/object.c | +11 | -0 | modified |
Full Patch
diff --git a/gdbus/object.c b/gdbus/object.c
index c63a26d..444728c 100644
--- a/gdbus/object.c
+++ b/gdbus/object.c
@@ -657,6 +657,17 @@ static gboolean remove_interface(struct generic_data *data, const char *name)
return TRUE;
}
+ /*
+ * Interface being removed was just added, on the same mainloop
+ * iteration? Don't send any signal
+ */
+ if (g_slist_find(data->added, iface)) {
+ data->added = g_slist_remove(data->added, iface);
+ g_free(iface->name);
+ g_free(iface);
+ return TRUE;
+ }
+
data->removed = g_slist_prepend(data->removed, iface->name);
g_free(iface);