From 3a9a9f247f3a091609f25a4730633e7f146b911c Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 25 Feb 2020 02:37:52 +0100 Subject: [PATCH] Clear import-status shared-ptr<> after use Previously "Sequence files" set import_status.track and never reset() the shared pointer. This resulted in various follow up issues. --- gtk2_ardour/editor.h | 17 +++++++++++------ gtk2_ardour/editor_audio_import.cc | 8 ++++---- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index de202c8c4f..7d8df5457a 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -1425,12 +1425,17 @@ private: /* import specific info */ struct EditorImportStatus : public ARDOUR::ImportStatus { - Editing::ImportMode mode; - samplepos_t pos; - int target_tracks; - int target_regions; - boost::shared_ptr track; - bool replace; + void clear () { + ARDOUR::ImportStatus::clear (); + track.reset (); + } + + Editing::ImportMode mode; + samplepos_t pos; + int target_tracks; + int target_regions; + boost::shared_ptr track; + bool replace; }; EditorImportStatus import_status; diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc index 47d4d76d21..25b3373be2 100644 --- a/gtk2_ardour/editor_audio_import.cc +++ b/gtk2_ardour/editor_audio_import.cc @@ -383,7 +383,7 @@ Editor::do_import (vector paths, } else { ipw.show (); ok = (import_sndfiles (paths, disposition, mode, quality, pos, 1, 1, track, false, instrument) == 0); - import_status.sources.clear(); + import_status.clear(); } } else { @@ -429,7 +429,7 @@ Editor::do_import (vector paths, } ok = (import_sndfiles (to_import, disposition, mode, quality, pos, 1, -1, track, replace, instrument) == 0); - import_status.sources.clear(); + import_status.clear(); break; case Editing::ImportDistinctChannels: @@ -438,7 +438,7 @@ Editor::do_import (vector paths, to_import.push_back (*a); ok = (import_sndfiles (to_import, disposition, mode, quality, pos, -1, -1, track, replace, instrument) == 0); - import_status.sources.clear(); + import_status.clear(); break; case Editing::ImportSerializeFiles: @@ -447,7 +447,7 @@ Editor::do_import (vector paths, to_import.push_back (*a); ok = (import_sndfiles (to_import, disposition, mode, quality, pos, 1, 1, track, replace, instrument) == 0); - import_status.sources.clear(); + import_status.clear(); break; case Editing::ImportMergeFiles: