Browse Source

Prevent double free of sound chunk in storm (#744)

pull/746/head
Marcin Konicki 6 years ago committed by GitHub
parent
commit
e4cbde0236
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 15
      SourceX/storm/storm.cpp

15
SourceX/storm/storm.cpp

@ -42,7 +42,7 @@ radon::File& getIni() {
return ini;
}
static Mix_Chunk *SFileChunk;
static Mix_Chunk *SFileChunk = NULL;
void GetBasePath(char *buffer, size_t size)
{
@ -102,6 +102,10 @@ BOOL SFileDdaBeginEx(HANDLE hFile, DWORD flags, DWORD mask, unsigned __int32 lDi
SDL_Log(SDL_GetError());
return false;
}
if (SFileChunk) {
SFileDdaEnd(hFile);
SFileFreeChunk();
}
SFileChunk = Mix_LoadWAV_RW(rw, 1);
free(SFXbuffer);
@ -115,13 +119,18 @@ BOOL SFileDdaBeginEx(HANDLE hFile, DWORD flags, DWORD mask, unsigned __int32 lDi
void SFileFreeChunk()
{
if(SFileChunk)
if (SFileChunk) {
Mix_FreeChunk(SFileChunk);
SFileChunk = NULL;
}
}
BOOL SFileDdaDestroy()
{
Mix_FreeChunk(SFileChunk);
if (SFileChunk) {
Mix_FreeChunk(SFileChunk);
SFileChunk = NULL;
}
return true;
}

Loading…
Cancel
Save