aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2012-12-08 22:44:00 +1100
committerPaul Gilbert2012-12-08 22:44:00 +1100
commit91e44d8e21bb2e93cdf030823c0f0d6d4022a366 (patch)
treeca16743b9d37ea3fe31029b19eafd386ac9af704 /engines
parente10f98fa5bafd762316c890b6ea71253c04bd4e3 (diff)
downloadscummvm-rg350-91e44d8e21bb2e93cdf030823c0f0d6d4022a366.tar.gz
scummvm-rg350-91e44d8e21bb2e93cdf030823c0f0d6d4022a366.tar.bz2
scummvm-rg350-91e44d8e21bb2e93cdf030823c0f0d6d4022a366.zip
HOPKINS: Apply first set of memory leak fixes
Diffstat (limited to 'engines')
-rw-r--r--engines/hopkins/events.cpp1
-rw-r--r--engines/hopkins/globals.cpp6
-rw-r--r--engines/hopkins/sound.cpp6
-rw-r--r--engines/hopkins/sound.h1
4 files changed, 14 insertions, 0 deletions
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();