Code

Tentative fix for LP bug #168922: don't save prefs n crash handler
[inkscape.git] / src / preferences.cpp
index ea3c015efe380acd69fef666c5e1fdc3de27816b..16b775b345243e21d1691ce0e76404dceb93354e 100644 (file)
@@ -73,10 +73,7 @@ Preferences::Preferences() :
 }
 
 Preferences::~Preferences()
-{
-    // when the preferences are unloaded, save them
-    save();
-    
+{   
     // delete all PrefNodeObservers
     for (_ObsMap::iterator i = _observer_map.begin(); i != _observer_map.end(); ) {
         delete (*i++).second; // avoids reference to a deleted key
@@ -637,6 +634,16 @@ Preferences::Entry const Preferences::_create_pref_value(Glib::ustring const &pa
     return Entry(path, ptr);
 }
 
+void Preferences::unload(bool save)
+{
+    if(_instance)
+    {
+        if (save) _instance->save();
+        delete _instance;
+        _instance = NULL;
+    }
+}
+
 Preferences *Preferences::_instance = NULL;