incorporate patch from ticket 1937, fix memory leak in SoundManager
This was SVN commit r13430.
This commit is contained in:
parent
88c4e5bdd0
commit
93d0084266
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ public:
|
||||
virtual unsigned int* GetBufferPtr();
|
||||
|
||||
protected:
|
||||
static DataMap* sSoundData;
|
||||
static DataMap sSoundData;
|
||||
|
||||
unsigned int m_ALBuffer;
|
||||
int m_RetentionCount;
|
||||
|
Loading…
Reference in New Issue
Block a user