diff options
Diffstat (limited to 'libs/ardour')
-rw-r--r-- | libs/ardour/auditioner.cc | 2 | ||||
-rw-r--r-- | libs/ardour/playlist.cc | 2 | ||||
-rw-r--r-- | libs/ardour/session_events.cc | 2 |
3 files changed, 4 insertions, 2 deletions
diff --git a/libs/ardour/auditioner.cc b/libs/ardour/auditioner.cc index e6f4e12e3d..9303b3b318 100644 --- a/libs/ardour/auditioner.cc +++ b/libs/ardour/auditioner.cc @@ -135,7 +135,7 @@ Auditioner::audition_region (boost::shared_ptr<Region> region) boost::shared_ptr<AudioRegion> the_region (boost::dynamic_pointer_cast<AudioRegion> (RegionFactory::create (region))); the_region->set_position (0, this); - _diskstream->playlist()->clear (); + _diskstream->playlist()->drop_regions (); _diskstream->playlist()->add_region (the_region, 0, 1); if (_diskstream->n_channels() < the_region->n_channels()) { diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc index b020680a0d..71deac5874 100644 --- a/libs/ardour/playlist.cc +++ b/libs/ardour/playlist.cc @@ -464,7 +464,7 @@ Playlist::add_region (boost::shared_ptr<Region> region, nframes_t position, floa pos += region->length(); --itimes; } - + /* later regions will all be spliced anyway */ if (!holding_state ()) { diff --git a/libs/ardour/session_events.cc b/libs/ardour/session_events.cc index e93a7a5f17..d736784396 100644 --- a/libs/ardour/session_events.cc +++ b/libs/ardour/session_events.cc @@ -406,6 +406,8 @@ Session::process_event (Event* ev) case Event::Audition: set_audition (ev->region); + // drop reference to region + ev->region.reset (); break; case Event::InputConfigurationChange: |