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/ardour/tempo.cc | |
parent | ac8f4baa002db37506a84088861b7a288dcdfae6 (diff) |
the endless quest to plug memory leaks -- episode 378
Diffstat (limited to 'libs/ardour/tempo.cc')
-rw-r--r-- | libs/ardour/tempo.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libs/ardour/tempo.cc b/libs/ardour/tempo.cc index 793d96c663..56f88d33d9 100644 --- a/libs/ardour/tempo.cc +++ b/libs/ardour/tempo.cc @@ -3471,6 +3471,7 @@ TempoMap::set_state (const XMLNode& node, int /*version*/) catch (failed_constructor& err){ error << _("Tempo map: could not set new state, restoring old one.") << endmsg; _metrics = old_metrics; + old_metrics.clear(); break; } @@ -3484,6 +3485,7 @@ TempoMap::set_state (const XMLNode& node, int /*version*/) catch (failed_constructor& err) { error << _("Tempo map: could not set new state, restoring old one.") << endmsg; _metrics = old_metrics; + old_metrics.clear(); break; } } @@ -3535,6 +3537,13 @@ TempoMap::set_state (const XMLNode& node, int /*version*/) } recompute_map (_metrics); + + Metrics::const_iterator d = old_metrics.begin(); + while (d != old_metrics.end()) { + delete (*d); + ++d; + } + old_metrics.clear (); } PropertyChanged (PropertyChange ()); |