1
0
forked from 0ad/0ad

incorporate patch from ticket 1937, fix memory leak in SoundManager

This was SVN commit r13430.
This commit is contained in:
stwf 2013-05-27 13:36:17 +00:00
parent 88c4e5bdd0
commit 93d0084266
2 changed files with 7 additions and 10 deletions

View File

@ -27,7 +27,7 @@
#include <iostream>
DataMap* CSoundData::sSoundData = NULL;
DataMap CSoundData::sSoundData;
CSoundData::CSoundData()
{
@ -57,24 +57,21 @@ void CSoundData::ReleaseSoundData(CSoundData* theData)
if (theData->DecrementCount())
{
if ((itemFind = CSoundData::sSoundData->find( theData->GetFileName()->string() )) != sSoundData->end())
if ((itemFind = CSoundData::sSoundData.find( theData->GetFileName()->string() )) != sSoundData.end())
{
CSoundData::sSoundData->erase(itemFind);
CSoundData::sSoundData.erase(itemFind);
}
delete theData;
}
}
CSoundData* CSoundData::SoundDataFromFile(const VfsPath& itemPath)
{
if (CSoundData::sSoundData == NULL)
CSoundData::sSoundData = new DataMap;
{
Path fExt = itemPath.Extension();
DataMap::iterator itemFind;
CSoundData* answer = NULL;
if ((itemFind = CSoundData::sSoundData->find(itemPath.string())) != sSoundData->end())
if ((itemFind = CSoundData::sSoundData.find(itemPath.string())) != sSoundData.end())
{
answer = itemFind->second;
}
@ -85,7 +82,7 @@ CSoundData* CSoundData::SoundDataFromFile(const VfsPath& itemPath)
if (answer && answer->IsOneShot())
{
(*CSoundData::sSoundData)[itemPath.string()] = answer;
CSoundData::sSoundData[itemPath.string()] = answer;
}
}

View File

@ -56,7 +56,7 @@ public:
virtual unsigned int* GetBufferPtr();
protected:
static DataMap* sSoundData;
static DataMap sSoundData;
unsigned int m_ALBuffer;
int m_RetentionCount;