From 4c516a76f55d75ecfa1b985adb1905cac945f3fe Mon Sep 17 00:00:00 2001 From: Ryan Lortie Date: Mon, 4 Feb 2013 12:37:49 +0100 Subject: engine, gsettings: prevent empty changesets We should not send empty changesets to the service so just ignore them when we get them. This now means that an empty 'dconf load' will not send any D-Bus messages (and will not cause D-Bus activation). --- engine/dconf-engine.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'engine') diff --git a/engine/dconf-engine.c b/engine/dconf-engine.c index 45e1d66..446619e 100644 --- a/engine/dconf-engine.c +++ b/engine/dconf-engine.c @@ -1029,6 +1029,9 @@ dconf_engine_change_fast (DConfEngine *engine, { GList *node; + if (dconf_changeset_is_empty (changeset)) + return TRUE; + if (!dconf_engine_changeset_changes_only_writable_keys (engine, changeset, error)) return FALSE; @@ -1091,6 +1094,14 @@ dconf_engine_change_sync (DConfEngine *engine, { GVariant *reply; + if (dconf_changeset_is_empty (changeset)) + { + if (tag) + *tag = g_strdup (""); + + return TRUE; + } + if (!dconf_engine_changeset_changes_only_writable_keys (engine, changeset, error)) return FALSE; -- cgit v1.2.1