Diff between d0f08e050a36fa6092ac151541f51b7d15768784 and 85f7f418190d54686a8be4d4836db96e025fc590

Changed Files

File Additions Deletions Status
gdbus/object.c +6 -6 modified

Full Patch

diff --git a/gdbus/object.c b/gdbus/object.c
index aa38c07..4147361 100644
--- a/gdbus/object.c
+++ b/gdbus/object.c
@@ -655,12 +655,6 @@ static gboolean remove_interface(struct generic_data *data, const char *name)
 		iface->user_data = NULL;
 	}
 
-	if (data->parent == NULL) {
-		g_free(iface->name);
-		g_free(iface);
-		return TRUE;
-	}
-
 	/*
 	 * Interface being removed was just added, on the same mainloop
 	 * iteration? Don't send any signal
@@ -672,6 +666,12 @@ static gboolean remove_interface(struct generic_data *data, const char *name)
 		return TRUE;
 	}
 
+	if (data->parent == NULL) {
+		g_free(iface->name);
+		g_free(iface);
+		return TRUE;
+	}
+
 	data->removed = g_slist_prepend(data->removed, iface->name);
 	g_free(iface);