summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorRyan Lortie <desrt@desrt.ca>2012-07-05 23:40:19 -0400
committerRyan Lortie <desrt@desrt.ca>2012-07-06 00:19:44 -0400
commit197c3bb81ca13bebc1fdf757f887455e588e3785 (patch)
tree1e90de65adfc5cb99494397ac33fe61c311e78e8 /engine
parent36af45d05df59d8acb4ca27bee6630f799c68f62 (diff)
downloaddconf-197c3bb81ca13bebc1fdf757f887455e588e3785.tar.gz
dconf source abstraction: don't leak the GVDBs
On finalize, the GVDBs associated with a source weren't being freed. This means that freeing a DConfClient (or any other DConfEngine user) would result in leaking of GVDBs.
Diffstat (limited to 'engine')
-rw-r--r--engine/dconf-engine-source.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/engine/dconf-engine-source.c b/engine/dconf-engine-source.c
index 48cf35c..45ec455 100644
--- a/engine/dconf-engine-source.c
+++ b/engine/dconf-engine-source.c
@@ -27,6 +27,12 @@
void
dconf_engine_source_free (DConfEngineSource *source)
{
+ if (source->values)
+ gvdb_table_unref (source->values);
+
+ if (source->locks)
+ gvdb_table_unref (source->locks);
+
source->vtable->finalize (source);
g_free (source->name);
g_free (source);