From aaa51f6dfe3e5c6bbb3d90427e91e898204f2bab Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Fri, 11 Sep 2020 17:56:42 +0200 Subject: [PATCH] Use the flags, and assert key to be valid with said flags --- src/sfizz/modulations/ModMatrix.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/sfizz/modulations/ModMatrix.cpp b/src/sfizz/modulations/ModMatrix.cpp index 7365c2eb..68501b40 100644 --- a/src/sfizz/modulations/ModMatrix.cpp +++ b/src/sfizz/modulations/ModMatrix.cpp @@ -213,18 +213,24 @@ void ModMatrix::init() for (unsigned i = 0; i < impl.sources_.size(); ++i) { Impl::Source& source = impl.sources_[i]; - if (source.key.flags() & kModIsPerCycle) + const int flags = source.key.flags(); + if (flags & kModIsPerCycle) { + ASSERT(!source.key.region()); source.gen->init(source.key, {}, 0); - - if (source.key.region()) { + } + else if (flags & kModIsPerVoice) { + ASSERT(source.key.region()); impl.sourceIndicesForRegion_[source.key.region().number()].push_back(i); } } for (unsigned i = 0; i < impl.targets_.size(); ++i) { Impl::Target& target = impl.targets_[i]; - if (target.key.region()) + const int flags = target.key.flags(); + if (flags & kModIsPerVoice) { + ASSERT(target.key.region()); impl.targetIndicesForRegion_[target.key.region().number()].push_back(i); + } } }