summaryrefslogtreecommitdiffstats
path: root/src/effects/effectchain.h
diff options
context:
space:
mode:
authorbe_ <be.0@gmx.com>2018-01-04 21:50:38 -0600
committerbe_ <be.0@gmx.com>2018-01-04 21:58:47 -0600
commitfff7f2e571bd9ea46d12a972c417aab0e24ce78a (patch)
treed1fc98fb2ce785182b61e659acea809e4856f86a /src/effects/effectchain.h
parent7ce4d44a4efdf0a6a662d3cd45c08231375e1d40 (diff)
decouple EffectStatesMapArray from EffectChain
This fixes a crash deleting EffectStates after starting up with an effect unit assigned to multiple input channels. EffectChain::enableForInputChannel kept reusing the same array for EffectStates and putting a pointer to this on the effects MessagePipe. That assumed that the engine had a chance to process the message to load the states by calling EffectProcessorImpl::loadStatesForInputChannel before the next call to EffectChain::enableForInputChannel. On startup, before the engine starts, this assumption is not true. The result was that EffectProcessorImpl ended up storing pointers to the same EffectStates for multiple input channels. This caused a crash when ~EffectProcessorImpl tried to delete the EffectStates for the second input channel because the EffectState had already been deleted when deleting the EffectStates for the first input channel. Fixes https://bugs.launchpad.net/mixxx/+bug/1740531
Diffstat (limited to 'src/effects/effectchain.h')
-rw-r--r--src/effects/effectchain.h1
1 files changed, 0 insertions, 1 deletions
diff --git a/src/effects/effectchain.h b/src/effects/effectchain.h
index 160ce8b113..cedecdf80e 100644
--- a/src/effects/effectchain.h
+++ b/src/effects/effectchain.h
@@ -123,7 +123,6 @@ class EffectChain : public QObject {
QList<EffectPointer> m_effects;
EngineEffectChain* m_pEngineEffectChain;
bool m_bAddedToEngine;
- EffectStatesMapArray m_effectStatesMapArray;
DISALLOW_COPY_AND_ASSIGN(EffectChain);
};