summaryrefslogtreecommitdiff
path: root/gtk2_ardour/audio_region_view.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/audio_region_view.cc')
-rw-r--r--gtk2_ardour/audio_region_view.cc15
1 files changed, 12 insertions, 3 deletions
diff --git a/gtk2_ardour/audio_region_view.cc b/gtk2_ardour/audio_region_view.cc
index b736f29416..8748acc16d 100644
--- a/gtk2_ardour/audio_region_view.cc
+++ b/gtk2_ardour/audio_region_view.cc
@@ -1156,9 +1156,14 @@ AudioRegionView::delete_waves ()
for (vector<ArdourWaveView::WaveView*>::iterator w = waves.begin(); w != waves.end(); ++w) {
group->remove(*w);
+ delete *w;
}
waves.clear();
- tmp_waves.clear();
+
+ while (!tmp_waves.empty ()) {
+ delete tmp_waves.back ();
+ tmp_waves.pop_back ();
+ }
pending_peak_data->show ();
}
@@ -1304,8 +1309,12 @@ AudioRegionView::create_one_wave (uint32_t which, bool /*direct*/)
/* all waves are ready */
tmp_waves.resize(nwaves);
- waves = tmp_waves;
- tmp_waves.clear ();
+ waves.swap(tmp_waves);
+
+ while (!tmp_waves.empty ()) {
+ delete tmp_waves.back ();
+ tmp_waves.pop_back ();
+ }
/* indicate peak-completed */
pending_peak_data->hide ();