From ddf6029c8601c5a68eb4b962d20c59fb8856d47e Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 31 Jul 2013 15:17:22 +0200 Subject: [PATCH] catch assert() --- libs/ardour/meter.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/libs/ardour/meter.cc b/libs/ardour/meter.cc index 765038b728..2b66f3e96b 100644 --- a/libs/ardour/meter.cc +++ b/libs/ardour/meter.cc @@ -270,7 +270,17 @@ PeakMeter::meter () return; } - assert(_visible_peak_power.size() == _peak_signal.size()); + // TODO block this thread while PeakMeter::reset_max_channels() is + // reallocating channels. + // (may happen with Session > New: old session not yet closed, + // meter-thread still active while new one is initializing and + // maybe on other occasions, too) + if ( (visible_peak_power.size() != _peak_signal.size()) + || (_max_peak_power.size() != _peak_signal.size()) + || (_max_peak_signal.size() != _peak_signal.size()) + ) { + return; + } const size_t limit = min (_peak_signal.size(), (size_t) current_meters.n_total ()); const size_t n_midi = min (_peak_signal.size(), (size_t) current_meters.n_midi());