summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorDaniel Playfair Cal <daniel.playfair.cal@gmail.com>2018-07-25 23:58:26 +1000
committerDaniel Playfair Cal <daniel.playfair.cal@gmail.com>2018-08-14 09:15:47 +1000
commit6e6089791b38b4da84d5b49c0b24286be1526a2b (patch)
tree2c245ceabb22fcc343aab011c4467fc6c5b7e1bf /engine
parent923096aac41199d8e6ec1bc3df211d36ab1607a1 (diff)
downloaddconf-6e6089791b38b4da84d5b49c0b24286be1526a2b.tar.gz
Engine: add some missing objects to dconf_engine_unref
Diffstat (limited to 'engine')
-rw-r--r--engine/dconf-engine.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/engine/dconf-engine.c b/engine/dconf-engine.c
index c0ff12d..2a99eab 100644
--- a/engine/dconf-engine.c
+++ b/engine/dconf-engine.c
@@ -289,11 +289,20 @@ dconf_engine_unref (DConfEngine *engine)
g_free (engine->last_handled);
+ while (!g_queue_is_empty (&engine->pending))
+ dconf_changeset_unref ((DConfChangeset *) g_queue_pop_head (&engine->pending));
+
+ while (!g_queue_is_empty (&engine->in_flight))
+ dconf_changeset_unref ((DConfChangeset *) g_queue_pop_head (&engine->in_flight));
+
for (i = 0; i < engine->n_sources; i++)
dconf_engine_source_free (engine->sources[i]);
g_free (engine->sources);
+ g_hash_table_unref(engine->pending_paths);
+ g_hash_table_unref(engine->watched_paths);
+
if (engine->free_func)
engine->free_func (engine->user_data);