aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorChristopher Page2008-06-12 18:11:09 +0000
committerChristopher Page2008-06-12 18:11:09 +0000
commita596879c8ead93bc3dd8e812103d78819dd2a81a (patch)
treec58f863be3306dee8e5222e93dba4105c7851626 /engines
parentdd423f803b43a0e6c54c3d7441c40cb7737d7867 (diff)
downloadscummvm-rg350-a596879c8ead93bc3dd8e812103d78819dd2a81a.tar.gz
scummvm-rg350-a596879c8ead93bc3dd8e812103d78819dd2a81a.tar.bz2
scummvm-rg350-a596879c8ead93bc3dd8e812103d78819dd2a81a.zip
LURE: Fixed memory leaks in the LURE engine
svn-id: r32675
Diffstat (limited to 'engines')
-rw-r--r--engines/lure/lure.cpp9
-rw-r--r--engines/lure/sound.cpp6
2 files changed, 5 insertions, 10 deletions
diff --git a/engines/lure/lure.cpp b/engines/lure/lure.cpp
index fa6323af07..ea760ddb4f 100644
--- a/engines/lure/lure.cpp
+++ b/engines/lure/lure.cpp
@@ -103,6 +103,7 @@ LureEngine::~LureEngine() {
if (_initialised) {
// Delete and deinitialise subsystems
Surface::deinitialise();
+ Sound.destroy();
delete _fights;
delete _room;
delete _menu;
@@ -164,14 +165,6 @@ void LureEngine::pauseEngineIntern(bool pause) {
}
}
-/* This is not being used
-
-void LureEngine::quitGame() {
- _system->quit();
-}
-
-*/
-
const char *LureEngine::generateSaveName(int slotNumber) {
static char buffer[15];
diff --git a/engines/lure/sound.cpp b/engines/lure/sound.cpp
index 839298d1c5..285f66e4e2 100644
--- a/engines/lure/sound.cpp
+++ b/engines/lure/sound.cpp
@@ -85,8 +85,10 @@ SoundManager::~SoundManager() {
if (_soundData)
delete _soundData;
- if (_driver)
+ if (_driver) {
_driver->close();
+ delete _driver;
+ }
_driver = NULL;
g_system->deleteMutex(_soundMutex);
@@ -143,7 +145,7 @@ void SoundManager::bellsBodge() {
Room &room = Room::getReference();
RoomData *roomData = res.getRoom(room.roomNumber());
- if (roomData->areaFlag != res.fieldList().getField(AREA_FLAG)) {
+ if (roomData && roomData->areaFlag != res.fieldList().getField(AREA_FLAG)) {
res.fieldList().setField(AREA_FLAG, roomData->areaFlag);
switch (roomData->areaFlag) {