diff --git a/build/win32/platform_specific_code/juce_win32_DirectSound.cpp b/build/win32/platform_specific_code/juce_win32_DirectSound.cpp index 2e414e6075..79f7a85b90 100644 --- a/build/win32/platform_specific_code/juce_win32_DirectSound.cpp +++ b/build/win32/platform_specific_code/juce_win32_DirectSound.cpp @@ -1612,13 +1612,13 @@ const String DSoundAudioIODevice::openDevice (const BitArray& inputChannels, dlh.scanForDevices(); enabledInputs = inputChannels; - enabledInputs.setRange (inChannels.size(), - enabledInputs.getHighestBit() + 1 - inChannels.size(), - false); - + enabledInputs.setRange (inChannels.size(), + enabledInputs.getHighestBit() + 1 - inChannels.size(), + false); + numInputBuffers = enabledInputs.countNumberOfSetBits(); inputBuffers = new float* [numInputBuffers + 2]; - zeromem (inputBuffers, sizeof (inputBuffers)); + zeromem (inputBuffers, sizeof (float*) * numInputBuffers + 2); int i, numIns = 0; for (i = 0; i <= enabledInputs.getHighestBit(); i += 2) @@ -1640,13 +1640,13 @@ const String DSoundAudioIODevice::openDevice (const BitArray& inputChannels, } enabledOutputs = outputChannels; - enabledOutputs.setRange (outChannels.size(), - enabledOutputs.getHighestBit() + 1 - outChannels.size(), - false); + enabledOutputs.setRange (outChannels.size(), + enabledOutputs.getHighestBit() + 1 - outChannels.size(), + false); numOutputBuffers = enabledOutputs.countNumberOfSetBits(); outputBuffers = new float* [numOutputBuffers + 2]; - zeromem (outputBuffers, sizeof (outputBuffers)); + zeromem (outputBuffers, sizeof (float*) * numOutputBuffers + 2); int numOuts = 0; for (i = 0; i <= enabledOutputs.getHighestBit(); i += 2)