diff options
Diffstat (limited to 'src/preferences.cpp')
| -rw-r--r-- | src/preferences.cpp | 5 |
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); |
