summaryrefslogtreecommitdiffstats
path: root/src/preferences.cpp
diff options
context:
space:
mode:
authorKris De Gussem <kris.degussem@gmail.com>2011-10-22 16:19:13 +0000
committerKris <Kris.De.Gussem@hotmail.com>2011-10-22 16:19:13 +0000
commit8dfc25432f0c295a80b419206f48da043054dcd3 (patch)
tree28ac1aaf10f0da9c55ad1808cf14466de58e82d4 /src/preferences.cpp
parentcppcheck (diff)
downloadinkscape-8dfc25432f0c295a80b419206f48da043054dcd3.tar.gz
inkscape-8dfc25432f0c295a80b419206f48da043054dcd3.zip
cppcheck: variable initialisation / fix possible memory leak
(bzr r10688)
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);