diff --git a/src/RageSoundReader_Resample_Good.cpp b/src/RageSoundReader_Resample_Good.cpp index f32530f9ae..0c3f3e0476 100644 --- a/src/RageSoundReader_Resample_Good.cpp +++ b/src/RageSoundReader_Resample_Good.cpp @@ -667,7 +667,7 @@ int RageSoundReader_Resample_Good::Read( float *pBuf, int iFrames ) { int iFramesNeeded = m_apResamplers[0]->NumInputsForOutputSamples(iFrames); - float pTmpBuf[iFramesNeeded * iChannels]; + float *pTmpBuf = (float *) alloca( iFramesNeeded * sizeof(float) * iChannels ); int iFramesIn = m_pSource->Read( pTmpBuf, iFramesNeeded ); if( iFramesIn < 0 ) return iFramesIn; diff --git a/src/RageSoundReader_SpeedChange.cpp b/src/RageSoundReader_SpeedChange.cpp index 54801c3505..919f9a4c24 100644 --- a/src/RageSoundReader_SpeedChange.cpp +++ b/src/RageSoundReader_SpeedChange.cpp @@ -89,10 +89,11 @@ int RageSoundReader_SpeedChange::FillData( int iMaxFrames ) if( iBytesToRead <= 0 ) return m_iDataBufferAvailFrames; - float pTempBuffer[iBytesToRead/sizeof(float)]; + float* pTempBuffer= new float[iBytesToRead/sizeof(float)]; int iGotFrames = m_pSource->Read( pTempBuffer, iFramesToRead ); if( iGotFrames < 0 ) { + delete[] pTempBuffer; if( iGotFrames == END_OF_FILE && m_iDataBufferAvailFrames ) return m_iDataBufferAvailFrames; return iGotFrames; @@ -114,6 +115,7 @@ int RageSoundReader_SpeedChange::FillData( int iMaxFrames ) ++pOut; } } + delete[] pTempBuffer; m_iDataBufferAvailFrames += iGotFrames; } diff --git a/src/RageSoundReader_WAV.cpp b/src/RageSoundReader_WAV.cpp index aafed8f658..27a423bb2d 100644 --- a/src/RageSoundReader_WAV.cpp +++ b/src/RageSoundReader_WAV.cpp @@ -288,8 +288,7 @@ public: /* We've read the block header; read the rest. Don't read past the end of the data chunk. */ int iMaxSize = min( (int) m_WavData.m_iBlockAlign - 7 * m_WavData.m_iChannels, (m_WavData.m_iDataChunkSize+m_WavData.m_iDataChunkPos) - m_File.Tell() ); - char cBuf[iMaxSize]; - char* pBuf= cBuf; + char *pBuf = (char *) alloca( iMaxSize ); int iBlockSize = m_File.Read( pBuf, iMaxSize ); if( iBlockSize == 0 )