[dconf] engine: free multiple 'shm' properly



commit 28536bd9794ca1a383fa2abbb627ac858b87226e
Author: Ryan Lortie <desrt desrt ca>
Date:   Tue Mar 6 23:52:53 2012 -0500

    engine: free multiple 'shm' properly
    
    In case of multiple user databases, we need to unref multiple 'shm'
    mappings.

 engine/dconf-engine.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
---
diff --git a/engine/dconf-engine.c b/engine/dconf-engine.c
index 1c66992..6f5c2af 100644
--- a/engine/dconf-engine.c
+++ b/engine/dconf-engine.c
@@ -387,13 +387,12 @@ dconf_engine_free (DConfEngine *engine)
 
       if (engine->lock_tables[i])
         gvdb_table_unref (engine->lock_tables[i]);
-    }
 
-  if (engine->shm)
-    {
-      munmap (engine->shm, 1);
+      if (engine->shm[i])
+        munmap (engine->shm[i], 1);
     }
 
+
   g_mutex_clear (&engine->lock);
 
   g_free (engine->object_paths);
@@ -401,6 +400,7 @@ dconf_engine_free (DConfEngine *engine)
   g_free (engine->names);
   g_free (engine->gvdbs);
   g_free (engine->lock_tables);
+  g_free (engine->shm);
 
   g_slice_free (DConfEngine, engine);
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]