diff --git a/libs/ardour/ardour/playlist.h b/libs/ardour/ardour/playlist.h index ed4ca9e0c9..ebc0e98fbb 100644 --- a/libs/ardour/ardour/playlist.h +++ b/libs/ardour/ardour/playlist.h @@ -435,7 +435,7 @@ protected: int remove_region_internal (std::shared_ptr, ThawList& thawlist); void copy_regions (RegionList&) const; - void partition_internal (timepos_t const & start, timepos_t const & end, bool cutting, ThawList& thawlist); + void partition_internal (timepos_t start, timepos_t end, bool cutting, ThawList& thawlist); std::pair _get_extent() const; diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc index 0fb2a7ec1d..6cfe91bb8a 100644 --- a/libs/ardour/playlist.cc +++ b/libs/ardour/playlist.cc @@ -988,8 +988,15 @@ Playlist::partition (timepos_t const & start, timepos_t const & end, bool cut) * removed. */ void -Playlist::partition_internal (timepos_t const & start, timepos_t const & end, bool cutting, ThawList& thawlist) +Playlist::partition_internal (timepos_t start, timepos_t end, bool cutting, ThawList& thawlist) { + if (start.time_domain () != end.time_domain () || start.time_domain () != time_domain () || end.time_domain () != time_domain ()) { + warning << string_compose (_("Playlist::partition_internal() with time domains mismatch %1 %2 (expected %3 time)"), start, end, time_domain () == Temporal::AudioTime ? "audio" : " music") << endmsg; + } + + start.set_time_domain (time_domain ()); + end.set_time_domain (time_domain ()); + RegionList new_regions; {