diff options
author | Robin Gareus <robin@gareus.org> | 2016-07-25 17:16:32 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-07-25 17:16:32 +0200 |
commit | eec294a97edce69ca71c972867ab708d5dd5625d (patch) | |
tree | d48202a8e6b5978ba1d6d5a83a574b3a91687460 /libs/evoral | |
parent | ac8f4baa002db37506a84088861b7a288dcdfae6 (diff) |
the endless quest to plug memory leaks -- episode 378
Diffstat (limited to 'libs/evoral')
-rw-r--r-- | libs/evoral/src/ControlList.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libs/evoral/src/ControlList.cpp b/libs/evoral/src/ControlList.cpp index 2a013f2669..c665b69a5b 100644 --- a/libs/evoral/src/ControlList.cpp +++ b/libs/evoral/src/ControlList.cpp @@ -139,6 +139,7 @@ ControlList::~ControlList() for (EventList::iterator x = _events.begin(); x != _events.end(); ++x) { delete (*x); } + _events.clear (); delete _curve; } @@ -178,6 +179,9 @@ ControlList::copy_events (const ControlList& other) { { Glib::Threads::RWLock::WriterLock lm (_lock); + for (EventList::iterator x = _events.begin(); x != _events.end(); ++x) { + delete (*x); + } _events.clear (); for (const_iterator i = other.begin(); i != other.end(); ++i) { _events.push_back (new ControlEvent ((*i)->when, (*i)->value)); @@ -216,6 +220,9 @@ ControlList::clear () { { Glib::Threads::RWLock::WriterLock lm (_lock); + for (EventList::iterator x = _events.begin(); x != _events.end(); ++x) { + delete (*x); + } _events.clear (); unlocked_invalidate_insert_iterator (); mark_dirty (); |