Browse Source

Fix memory leak with audio stream not been released

SFileChunk was not been release.
pull/867/head
BDC 6 years ago committed by Anders Jenbo
parent
commit
741cdb2494
  1. 1
      3rdParty/Storm/Source/storm.h
  2. 1
      Source/effects.cpp
  3. 6
      SourceX/storm/storm.cpp

1
3rdParty/Storm/Source/storm.h vendored

@ -200,6 +200,7 @@ BOOL STORMAPI SFileCloseArchive(HANDLE hArchive);
BOOL STORMAPI SFileCloseFile(HANDLE hFile);
BOOL STORMAPI SFileDdaBeginEx(HANDLE hFile, DWORD flags, DWORD mask, unsigned __int32 lDistanceToMove, signed __int32 volume, signed int pan, int a7);
void SFileFreeChunk();
BOOL STORMAPI SFileDdaDestroy();
BOOL STORMAPI SFileDdaEnd(HANDLE hFile);
BOOL STORMAPI SFileDdaGetPos(HANDLE hFile, DWORD *current, DWORD *end);

1
Source/effects.cpp

@ -920,6 +920,7 @@ void sfx_stop()
if (sfx_stream) {
SFileDdaEnd(sfx_stream);
SFileCloseFile(sfx_stream);
SFileFreeChunk();
sfx_stream = NULL;
sfx_data_cur = NULL;
}

6
SourceX/storm/storm.cpp

@ -103,6 +103,12 @@ BOOL SFileDdaBeginEx(HANDLE hFile, DWORD flags, DWORD mask, unsigned __int32 lDi
return true;
}
void SFileFreeChunk()
{
if(SFileChunk)
Mix_FreeChunk(SFileChunk);
}
BOOL SFileDdaDestroy()
{
Mix_FreeChunk(SFileChunk);

Loading…
Cancel
Save