diff --git a/daemon/src/audio/sound/audiofile.cpp b/daemon/src/audio/sound/audiofile.cpp index bafc2012b5d4e1196f04551bbb9f09e70cb66495..4325de6bf598331a2a06136d96c1122bf8307d4a 100644 --- a/daemon/src/audio/sound/audiofile.cpp +++ b/daemon/src/audio/sound/audiofile.cpp @@ -34,7 +34,8 @@ #include <math.h> #include <samplerate.h> #include <cstring> -#include <limits.h> +#include <vector> +#include <climits> #include "audiofile.h" #include "audio/codecs/audiocodecfactory.h" @@ -62,8 +63,8 @@ RawFile::RawFile(const std::string& name, sfl::AudioCodec* codec, unsigned int s size_t length = file.tellg(); file.seekg(0, std::ios::beg); - char *fileBuffer = new char[length]; - file.read(fileBuffer,length); + std::vector<char> fileBuffer(length); + file.read(&fileBuffer[0], length); file.close(); const unsigned int frameSize = audioCodec_->getFrameSize(); @@ -74,7 +75,7 @@ RawFile::RawFile(const std::string& name, sfl::AudioCodec* codec, unsigned int s SFLDataFormat *monoBuffer = new SFLDataFormat[decodedSize]; SFLDataFormat *bufpos = monoBuffer; - unsigned char *filepos = reinterpret_cast<unsigned char *>(fileBuffer); + unsigned char *filepos = reinterpret_cast<unsigned char *>(&fileBuffer[0]); size_ = decodedSize; while (length >= encFrameSize) { @@ -83,8 +84,6 @@ RawFile::RawFile(const std::string& name, sfl::AudioCodec* codec, unsigned int s length -= encFrameSize; } - delete [] fileBuffer; - if (sampleRate == audioRate) buffer_ = monoBuffer; else {