diff options
author | Robin Gareus <robin@gareus.org> | 2020-02-25 02:37:52 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2020-02-25 02:37:52 +0100 |
commit | 3a9a9f247f3a091609f25a4730633e7f146b911c (patch) | |
tree | d8c4be999f4e764a94949a4c188afb6d8252eeb8 | |
parent | 89e5954953bd50089e69cd133d86e96bb6ac849d (diff) |
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.
-rw-r--r-- | gtk2_ardour/editor.h | 17 | ||||
-rw-r--r-- | 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<ARDOUR::Track> 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<ARDOUR::Track> 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<string> 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<string> 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<string> 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<string> 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: |