Fixed minor memory leak.

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@9948 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
hikerstk 2011-10-06 06:19:46 +00:00
parent 4530a7e498
commit ad73e60d4c
3 changed files with 17 additions and 10 deletions

View File

@ -127,9 +127,9 @@ MusicInformation::MusicInformation(const std::string& filename) throw (std::runt
MusicInformation::~MusicInformation()
{
delete m_normal_music;
delete m_fast_music;
}
if(m_normal_music) delete m_normal_music;
if(m_fast_music) delete m_fast_music;
} // ~MusicInformation
//-----------------------------------------------------------------------------
@ -168,7 +168,7 @@ void MusicInformation::startMusic()
if((m_normal_music->load(m_normal_filename)) == false)
{
delete m_normal_music;
m_normal_music=0;
m_normal_music = NULL;
fprintf(stderr, "WARNING: Unabled to load music %s, not supported or not found.\n",
m_normal_filename.c_str());
return;

View File

@ -78,6 +78,13 @@ MusicManager::~MusicManager()
{
stopMusic();
for(std::map<std::string,MusicInformation*>::iterator i=m_all_music.begin();
i!=m_all_music.end(); i++)
{
delete i->second;
i->second = NULL;
}
if(m_initialized)
{
ALCcontext* context = alcGetCurrentContext();
@ -113,7 +120,7 @@ void MusicManager::loadMusicFromOneDir(const std::string& dir)
if(StringUtils::getExtension(*i)!="music") continue;
try
{
m_allMusic[StringUtils::getBasename(*i)] = new MusicInformation(*i);
m_all_music[StringUtils::getBasename(*i)] = new MusicInformation(*i);
}
catch (std::exception& e)
{
@ -126,8 +133,8 @@ void MusicManager::loadMusicFromOneDir(const std::string& dir)
//-----------------------------------------------------------------------------
void MusicManager::addMusicToTracks()
{
for(std::map<std::string,MusicInformation*>::iterator i=m_allMusic.begin();
i!=m_allMusic.end(); i++)
for(std::map<std::string,MusicInformation*>::iterator i=m_all_music.begin();
i!=m_all_music.end(); i++)
{
if(!i->second)
{
@ -189,12 +196,12 @@ MusicInformation* MusicManager::getMusicInformation(const std::string& filename)
return NULL;
}
const std::string basename = StringUtils::getBasename(filename);
MusicInformation* mi = m_allMusic[basename];
MusicInformation* mi = m_all_music[basename];
if(!mi)
{
// Note that this might raise an exception
mi = new MusicInformation(filename);
m_allMusic[basename] = mi;
m_all_music[basename] = mi;
}
mi->volumeMusic(m_masterGain);
return mi;

View File

@ -45,7 +45,7 @@ private:
* game. */
bool m_initialized;
std::map<std::string, MusicInformation*>
m_allMusic;
m_all_music;
void loadMusicInformation();
float m_masterGain;