summaryrefslogtreecommitdiffstats
path: root/src/preferences.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/preferences.cpp')
-rw-r--r--src/preferences.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/preferences.cpp b/src/preferences.cpp
index 444acfcac..f026e92cd 100644
--- a/src/preferences.cpp
+++ b/src/preferences.cpp
@@ -521,6 +521,7 @@ struct _ObserverData {
Preferences::Observer::Observer(Glib::ustring const &path) :
observed_path(path)
{
+ _data = NULL;
}
Preferences::Observer::~Observer()
@@ -600,6 +601,10 @@ void Preferences::addObserver(Observer &o)
_ObserverData *priv_data = new _ObserverData;
priv_data->_node = node;
priv_data->_is_attr = !attr_key.empty();
+ if (o._data)
+ {
+ delete o._data;
+ }
o._data = static_cast<void*>(priv_data);
_observer_map[&o] = new PrefNodeObserver(o, attr_key);