summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2013-08-19 16:54:35 +0300
committerMarcel Holtmann <marcel@holtmann.org>2013-09-10 19:06:59 -0700
commit554a4da9b4170e9b122322432c5480d3297bc0e7 (patch)
tree0f2930ec82c239996e7055ba56e77c68c80650b9
parentffde6978bd0fe546cf791b8f3016f39d155e6af0 (diff)
downloadneard-554a4da9b4170e9b122322432c5480d3297bc0e7.tar.gz
neard-554a4da9b4170e9b122322432c5480d3297bc0e7.tar.bz2
neard-554a4da9b4170e9b122322432c5480d3297bc0e7.zip
gdbus: Fix emitting PropertiesChanged twice
This fixes double emission of PropertiesChanged introduced by flushing changes, the flushing can happen during the pending processing so the pending_prop flag needs to be updated in the beginning and the list of properties can be freed before g_dbus_send_message as it is not required anymore.
-rw-r--r--gdbus/object.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gdbus/object.c b/gdbus/object.c
index c4cf724..0822fe8 100644
--- a/gdbus/object.c
+++ b/gdbus/object.c
@@ -1642,6 +1642,8 @@ static void process_properties_from_interface(struct generic_data *data,
DBusMessageIter iter, dict, array;
GSList *invalidated;
+ data->pending_prop = FALSE;
+
if (iface->pending_prop == NULL)
return;
@@ -1708,8 +1710,6 @@ static void process_property_changes(struct generic_data *data)
process_properties_from_interface(data, iface);
}
-
- data->pending_prop = FALSE;
}
void g_dbus_emit_property_changed(DBusConnection *connection,