From 91e44d8e21bb2e93cdf030823c0f0d6d4022a366 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 8 Dec 2012 22:44:00 +1100 Subject: HOPKINS: Apply first set of memory leak fixes --- engines/hopkins/events.cpp | 1 + engines/hopkins/globals.cpp | 6 ++++++ engines/hopkins/sound.cpp | 6 ++++++ engines/hopkins/sound.h | 1 + 4 files changed, 14 insertions(+) diff --git a/engines/hopkins/events.cpp b/engines/hopkins/events.cpp index be261342d1..f92e225939 100644 --- a/engines/hopkins/events.cpp +++ b/engines/hopkins/events.cpp @@ -57,6 +57,7 @@ EventsManager::EventsManager() { EventsManager::~EventsManager() { _vm->_globals.dos_free2(Bufferobjet); + _vm->_globals.dos_free2(pointeur_souris); } void EventsManager::setParent(HopkinsEngine *vm) { diff --git a/engines/hopkins/globals.cpp b/engines/hopkins/globals.cpp index aee0cb23a2..e19819f95c 100644 --- a/engines/hopkins/globals.cpp +++ b/engines/hopkins/globals.cpp @@ -261,6 +261,8 @@ Globals::Globals() { Globals::~Globals() { free(ICONE); + dos_free2(TETE); + dos_free2(police); dos_free2(BUF_ZONE); dos_free2(CACHE_BANQUE[6]); dos_free2(texte_tmp); @@ -277,6 +279,8 @@ Globals::~Globals() { dos_free2(ADR_FICHIER_OBJ); dos_free2(PERSO); + CLEAR_VBOB(); + free(g_PTRNUL); } @@ -474,6 +478,8 @@ void Globals::CLEAR_VBOB() { VBob[idx].yp = 0; VBob[idx].frameIndex = 0; VBob[idx].fieldC = 0; + if (VBob[idx].surface != g_PTRNUL) + dos_free2(VBob[idx].surface); VBob[idx].surface = g_PTRNUL; VBob[idx].spriteData = g_PTRNUL; VBob[idx].oldSpriteData = g_PTRNUL; diff --git a/engines/hopkins/sound.cpp b/engines/hopkins/sound.cpp index 37ac7c4e2a..4030fe0872 100644 --- a/engines/hopkins/sound.cpp +++ b/engines/hopkins/sound.cpp @@ -99,6 +99,12 @@ SoundManager::SoundManager() { Common::fill((byte *)&Music, (byte *)&Music + sizeof(MusicItem), 0); } +SoundManager::~SoundManager() { + STOP_MUSIC(); + DEL_MUSIC(); + MOD_FLAG = false; +} + void SoundManager::setParent(HopkinsEngine *vm) { _vm = vm; SPECIAL_SOUND = 0; diff --git a/engines/hopkins/sound.h b/engines/hopkins/sound.h index 4628a47a7d..84bae1deca 100644 --- a/engines/hopkins/sound.h +++ b/engines/hopkins/sound.h @@ -136,6 +136,7 @@ public: MusicItem Music; public: SoundManager(); + ~SoundManager(); void setParent(HopkinsEngine *vm); void WSOUND_INIT(); -- cgit v1.2.3