From b927f214f31ac5cfd34a64fdcd406db161b78d85 Mon Sep 17 00:00:00 2001 From: Stephen Anthony Date: Sun, 18 Sep 2022 16:56:57 -0230 Subject: [PATCH] Use unique_ptr instead of C-style allocations. --- src/common/SoundSDL2.cxx | 16 +++++++--------- src/common/SoundSDL2.hxx | 2 +- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/common/SoundSDL2.cxx b/src/common/SoundSDL2.cxx index f00c5b4b5..f44760de6 100644 --- a/src/common/SoundSDL2.cxx +++ b/src/common/SoundSDL2.cxx @@ -476,8 +476,7 @@ void SoundSDL2::stopWav() } if(myWavCvtBuffer) { - SDL_free(myWavCvtBuffer); - myWavCvtBuffer = nullptr; + myWavCvtBuffer.reset(); myWavCvtBufferSize = 0; } } @@ -510,15 +509,14 @@ void SoundSDL2::wavCallback(void* udata, uInt8* stream, int len) SDL_assert(cvt.needed); // Obviously, this one is always needed. cvt.len = len * myWavSpec.channels; // Mono 8 bit sample frames - if(!myWavCvtBuffer || myWavCvtBufferSize < static_cast(cvt.len * cvt.len_mult)) + if(!myWavCvtBuffer || + myWavCvtBufferSize < static_cast(cvt.len * cvt.len_mult)) { - if(myWavCvtBuffer) - SDL_free(myWavCvtBuffer); myWavCvtBufferSize = cvt.len * cvt.len_mult; - myWavCvtBuffer = static_cast(SDL_malloc(myWavCvtBufferSize)); + myWavCvtBuffer = make_unique(myWavCvtBufferSize); } - //cvt.buf = static_cast(SDL_malloc(cvt.len * cvt.len_mult)); - cvt.buf = myWavCvtBuffer; + cvt.buf = myWavCvtBuffer.get(); + // Read original data into conversion buffer SDL_memcpy(cvt.buf, myWavPos, cvt.len); SDL_ConvertAudio(&cvt); @@ -548,7 +546,7 @@ uInt8* SoundSDL2::myWavPos = nullptr; // pointer to the audio buffer to be playe uInt32 SoundSDL2::myWavLen = 0; // remaining length of the sample we have to play #ifdef RESAMPLE_WAV double SoundSDL2::myWavSpeed = 1.0; -uInt8* SoundSDL2::myWavCvtBuffer = nullptr; +unique_ptr SoundSDL2::myWavCvtBuffer = nullptr; uInt32 SoundSDL2::myWavCvtBufferSize = 0; #endif diff --git a/src/common/SoundSDL2.hxx b/src/common/SoundSDL2.hxx index affcb889d..0e6531d46 100644 --- a/src/common/SoundSDL2.hxx +++ b/src/common/SoundSDL2.hxx @@ -196,7 +196,7 @@ class SoundSDL2 : public Sound uInt8* myWavBuffer{nullptr}; #ifdef RESAMPLE_WAV static double myWavSpeed; - static uInt8* myWavCvtBuffer; + static unique_ptr myWavCvtBuffer; static uInt32 myWavCvtBufferSize; #endif