diff options
author | Ryan Lortie <desrt@desrt.ca> | 2012-03-19 11:24:26 -0400 |
---|---|---|
committer | Ryan Lortie <desrt@desrt.ca> | 2012-03-19 11:24:26 -0400 |
commit | 1ce11b2802c915b7e4c9c8d7f1d2862982335406 (patch) | |
tree | 45859aba5c13ff16ba357b3fbc4a9ba13b7601c0 | |
parent | 2e777f788c1fad678a8a64bd11de8d642fbbeabc (diff) | |
download | dconf-1ce11b2802c915b7e4c9c8d7f1d2862982335406.tar.gz |
dconf engine: don't leak lock table on reload
If the system database changes while a program is running make sure we
unref the old copy of the lock table (if it exists) before trying to
load the new one.
-rw-r--r-- | engine/dconf-engine.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/engine/dconf-engine.c b/engine/dconf-engine.c index 6f5c2af..aedabcf 100644 --- a/engine/dconf-engine.c +++ b/engine/dconf-engine.c @@ -169,6 +169,12 @@ dconf_engine_refresh_system (DConfEngine *engine, { if (engine->gvdbs[i] && !gvdb_table_is_valid (engine->gvdbs[i])) { + if (engine->lock_tables[i]) + { + gvdb_table_unref (engine->lock_tables[i]); + engine->lock_tables[i] = NULL; + } + gvdb_table_unref (engine->gvdbs[i]); engine->gvdbs[i] = NULL; } |