diff options
author | Robin Gareus <robin@gareus.org> | 2013-07-31 15:17:22 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2013-07-31 15:17:22 +0200 |
commit | c212c16eb8e6f448c07be039f1417fa05c6aadac (patch) | |
tree | 42494c323d13e15c072aad29ae503daaecfe02f7 /libs/ardour/meter.cc | |
parent | 097d851730f301f886dec4032feded9d3b7dd782 (diff) |
catch assert()
Diffstat (limited to 'libs/ardour/meter.cc')
-rw-r--r-- | libs/ardour/meter.cc | 12 |
1 files changed, 11 insertions, 1 deletions
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()); |