From 6868a318d9fc78c1127d087c73ce892a135e4119 Mon Sep 17 00:00:00 2001 From: spider-mario Date: Sat, 16 May 2015 17:53:04 +0200 Subject: [PATCH] Prevent stereo->mono effects from causing a crash. --- src/effects/Effect.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/effects/Effect.cpp b/src/effects/Effect.cpp index c7c24c42e..4061334b7 100644 --- a/src/effects/Effect.cpp +++ b/src/effects/Effect.cpp @@ -1749,7 +1749,14 @@ bool Effect::ProcessTrack(int count, left->Set((samplePtr) mOutBuffer[0], floatSample, outLeftPos, outputBufferCnt); if (right) { - right->Set((samplePtr) mOutBuffer[1], floatSample, outRightPos, outputBufferCnt); + if (chans >= 2) + { + right->Set((samplePtr) mOutBuffer[1], floatSample, outRightPos, outputBufferCnt); + } + else + { + right->Set((samplePtr) mOutBuffer[0], floatSample, outRightPos, outputBufferCnt); + } } } else if (isGenerator) @@ -1799,7 +1806,14 @@ bool Effect::ProcessTrack(int count, left->Set((samplePtr) mOutBuffer[0], floatSample, outLeftPos, outputBufferCnt); if (right) { - right->Set((samplePtr) mOutBuffer[1], floatSample, outRightPos, outputBufferCnt); + if (chans >= 2) + { + right->Set((samplePtr) mOutBuffer[1], floatSample, outRightPos, outputBufferCnt); + } + else + { + right->Set((samplePtr) mOutBuffer[0], floatSample, outRightPos, outputBufferCnt); + } } } else if (isGenerator)