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:
parent
4530a7e498
commit
ad73e60d4c
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -45,7 +45,7 @@ private:
|
||||
* game. */
|
||||
bool m_initialized;
|
||||
std::map<std::string, MusicInformation*>
|
||||
m_allMusic;
|
||||
m_all_music;
|
||||
|
||||
void loadMusicInformation();
|
||||
float m_masterGain;
|
||||
|
Loading…
x
Reference in New Issue
Block a user