From 0ff2c746f7a55337d0480ce517322b3f376596ff Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 25 Oct 2022 12:52:30 -0600 Subject: [PATCH] prevent crash if tempo or meter are dragged back to zero --- libs/temporal/tempo.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libs/temporal/tempo.cc b/libs/temporal/tempo.cc index b91b8bd0e0..67d6c06bb4 100644 --- a/libs/temporal/tempo.cc +++ b/libs/temporal/tempo.cc @@ -1417,8 +1417,14 @@ TempoMap::move_tempo (TempoPoint const & tp, timepos_t const & when, bool push) beats = beats.round_to_beat (); for (t = _tempos.begin(), prev_t = _tempos.end(); t != _tempos.end() && t->beats() < beats && *t != tp; ++t) { prev_t = t; } for (m = _meters.begin(), prev_m = _meters.end(); m != _meters.end() && m->beats() < beats; ++m) { prev_m = m; } - assert (prev_t != _tempos.end()); - assert (prev_m != _meters.end()); + if (prev_t == _tempos.end()) { + /* moved earlier than first, no movement */ + return false; + } + if (prev_m == _meters.end()) { + /* moved earlier than first, no movement */ + return false; + } TempoMetric metric (*prev_t, *prev_m); sc = metric.superclock_at (beats); bbt = metric.bbt_at (beats);