summaryrefslogtreecommitdiff
path: root/libs/ardour/meter.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-07-31 15:17:22 +0200
committerRobin Gareus <robin@gareus.org>2013-07-31 15:17:22 +0200
commitc212c16eb8e6f448c07be039f1417fa05c6aadac (patch)
tree42494c323d13e15c072aad29ae503daaecfe02f7 /libs/ardour/meter.cc
parent097d851730f301f886dec4032feded9d3b7dd782 (diff)
catch assert()
Diffstat (limited to 'libs/ardour/meter.cc')
-rw-r--r--libs/ardour/meter.cc12
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());