aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Templier2010-11-11 14:19:44 +0000
committerJulien Templier2010-11-11 14:19:44 +0000
commit521f228ceddda2cfc0ed1006682d1b7dfbca7302 (patch)
treea2e217595367a0441480eff679b21edcfaa5368e
parent7207d920bc2f4e01a653e0fada30698c870b9e8b (diff)
downloadscummvm-rg350-521f228ceddda2cfc0ed1006682d1b7dfbca7302.tar.gz
scummvm-rg350-521f228ceddda2cfc0ed1006682d1b7dfbca7302.tar.bz2
scummvm-rg350-521f228ceddda2cfc0ed1006682d1b7dfbca7302.zip
LASTEXPRESS: Use SAFE_DELETE for class variables
svn-id: r54201
-rw-r--r--engines/lastexpress/data/animation.cpp15
-rw-r--r--engines/lastexpress/debug.cpp2
-rw-r--r--engines/lastexpress/entities/entity.cpp2
-rw-r--r--engines/lastexpress/entities/entity.h9
-rw-r--r--engines/lastexpress/game/action.cpp4
-rw-r--r--engines/lastexpress/game/beetle.h7
-rw-r--r--engines/lastexpress/game/entities.cpp6
-rw-r--r--engines/lastexpress/game/fight.cpp9
-rw-r--r--engines/lastexpress/game/logic.cpp12
-rw-r--r--engines/lastexpress/game/menu.cpp16
-rw-r--r--engines/lastexpress/game/scenes.cpp7
-rw-r--r--engines/lastexpress/game/sound.cpp8
-rw-r--r--engines/lastexpress/game/sound.h7
-rw-r--r--engines/lastexpress/game/state.cpp10
-rw-r--r--engines/lastexpress/lastexpress.cpp62
-rw-r--r--engines/lastexpress/lastexpress.h8
-rw-r--r--engines/lastexpress/resource.cpp3
17 files changed, 99 insertions, 88 deletions
diff --git a/engines/lastexpress/data/animation.cpp b/engines/lastexpress/data/animation.cpp
index 88973c4b0b..3f1383022f 100644
--- a/engines/lastexpress/data/animation.cpp
+++ b/engines/lastexpress/data/animation.cpp
@@ -31,6 +31,7 @@
#include "lastexpress/data/snd.h"
#include "lastexpress/debug.h"
+#include "lastexpress/helpers.h"
#include "common/events.h"
#include "engines/engine.h"
@@ -45,21 +46,17 @@ Animation::~Animation() {
}
void Animation::reset() {
- delete _overlay;
- _overlay = NULL;
- delete _background1;
- _background1 = NULL;
- delete _background2;
- _background2 = NULL;
- delete _audio;
- _audio = NULL;
+ SAFE_DELETE(_overlay);
+ SAFE_DELETE(_background1);
+ SAFE_DELETE(_background2);
+ SAFE_DELETE(_audio);
_backgroundCurrent = 0;
_chunks.clear();
_currentChunk = NULL;
- delete _stream;
+ SAFE_DELETE(_stream);
}
bool Animation::load(Common::SeekableReadStream *stream, int flag) {
diff --git a/engines/lastexpress/debug.cpp b/engines/lastexpress/debug.cpp
index 66949c3d34..520b4cfee3 100644
--- a/engines/lastexpress/debug.cpp
+++ b/engines/lastexpress/debug.cpp
@@ -100,7 +100,7 @@ Debugger::Debugger(LastExpressEngine *engine) : _engine(engine), _command(NULL),
Debugger::~Debugger() {
DebugMan.clearAllDebugChannels();
- delete _soundStream;
+ SAFE_DELETE(_soundStream);
resetCommand();
_command = NULL;
diff --git a/engines/lastexpress/entities/entity.cpp b/engines/lastexpress/entities/entity.cpp
index 6ca0155dcb..7e76123b5b 100644
--- a/engines/lastexpress/entities/entity.cpp
+++ b/engines/lastexpress/entities/entity.cpp
@@ -154,7 +154,7 @@ Entity::~Entity() {
_callbacks.clear();
- delete _data;
+ SAFE_DELETE(_data);
// Zero-out passed pointers
_engine = NULL;
diff --git a/engines/lastexpress/entities/entity.h b/engines/lastexpress/entities/entity.h
index 33ca244c5e..9a2b0ffe25 100644
--- a/engines/lastexpress/entities/entity.h
+++ b/engines/lastexpress/entities/entity.h
@@ -30,6 +30,8 @@
#include "lastexpress/game/sound.h"
+#include "lastexpress/helpers.h"
+
#include "common/array.h"
#include "common/func.h"
#include "common/serializer.h"
@@ -493,11 +495,8 @@ public:
}
void clear() {
- for (int i = 0; i < 4; i++) {
- if (parameters[i])
- delete parameters[i];
- parameters[i] = NULL;
- }
+ for (int i = 0; i < 4; i++)
+ SAFE_DELETE(parameters[i]);
}
// Serializable
diff --git a/engines/lastexpress/game/action.cpp b/engines/lastexpress/game/action.cpp
index 8058d22f05..d14e295cb3 100644
--- a/engines/lastexpress/game/action.cpp
+++ b/engines/lastexpress/game/action.cpp
@@ -383,7 +383,9 @@ Action::Action(LastExpressEngine *engine) : _engine(engine) {
Action::~Action() {
for (int i = 0; i < (int)_actions.size(); i++)
- delete _actions[i];
+ SAFE_DELETE(_actions[i]);
+
+ _actions.clear();
// Zero-out passed pointers
_engine = NULL;
diff --git a/engines/lastexpress/game/beetle.h b/engines/lastexpress/game/beetle.h
index 3341e92270..661618a251 100644
--- a/engines/lastexpress/game/beetle.h
+++ b/engines/lastexpress/game/beetle.h
@@ -28,6 +28,8 @@
#include "lastexpress/data/sequence.h"
+#include "lastexpress/helpers.h"
+
#include "common/array.h"
#include "common/system.h"
@@ -98,8 +100,9 @@ private:
~BeetleData() {
for (int i = 0; i < (int)sequences.size(); i++)
- if (sequences[i])
- delete sequences[i];
+ SAFE_DELETE(sequences[i]);
+
+ sequences.clear();
}
};
diff --git a/engines/lastexpress/game/entities.cpp b/engines/lastexpress/game/entities.cpp
index adba0f1b4c..8741a4873b 100644
--- a/engines/lastexpress/game/entities.cpp
+++ b/engines/lastexpress/game/entities.cpp
@@ -185,10 +185,12 @@ Entities::Entities(LastExpressEngine *engine) : _engine(engine) {
}
Entities::~Entities() {
- delete _header;
+ SAFE_DELETE(_header);
for (int i = 0; i < (int)_entities.size(); i++)
- delete _entities[i];
+ SAFE_DELETE(_entities[i]);
+
+ _entities.clear();
// Zero passed pointers
_engine = NULL;
diff --git a/engines/lastexpress/game/fight.cpp b/engines/lastexpress/game/fight.cpp
index 8fa711df1c..9f92320575 100644
--- a/engines/lastexpress/game/fight.cpp
+++ b/engines/lastexpress/game/fight.cpp
@@ -325,11 +325,10 @@ void Fight::clearData() {
clearSequences(_data->player);
clearSequences(_data->opponent);
- delete _data->player;
- delete _data->opponent;
+ SAFE_DELETE(_data->player);
+ SAFE_DELETE(_data->opponent);
- delete _data;
- _data = NULL;
+ SAFE_DELETE(_data);
_engine->restoreEventHandlers();
}
@@ -343,7 +342,7 @@ void Fight::clearSequences(Fighter *combatant) const {
// Free sequences
for (int i = 0; i < (int)combatant->sequences.size(); i++)
- delete combatant->sequences[i];
+ SAFE_DELETE(combatant->sequences[i]);
}
//////////////////////////////////////////////////////////////////////////
diff --git a/engines/lastexpress/game/logic.cpp b/engines/lastexpress/game/logic.cpp
index 3ef710a324..8e7f688235 100644
--- a/engines/lastexpress/game/logic.cpp
+++ b/engines/lastexpress/game/logic.cpp
@@ -72,12 +72,12 @@ Logic::Logic(LastExpressEngine *engine) : _engine(engine) {
}
Logic::~Logic() {
- delete _action;
- delete _beetle;
- delete _fight;
- delete _entities;
- delete _saveload;
- delete _state;
+ SAFE_DELETE(_action);
+ SAFE_DELETE(_beetle);
+ SAFE_DELETE(_fight);
+ SAFE_DELETE(_entities);
+ SAFE_DELETE(_saveload);
+ SAFE_DELETE(_state);
// Zero-out passed pointers
_engine = NULL;
diff --git a/engines/lastexpress/game/menu.cpp b/engines/lastexpress/game/menu.cpp
index 6ca4f22177..9e38d05444 100644
--- a/engines/lastexpress/game/menu.cpp
+++ b/engines/lastexpress/game/menu.cpp
@@ -204,10 +204,10 @@ Clock::Clock(LastExpressEngine *engine) : _engine(engine), _frameMinutes(NULL),
}
Clock::~Clock() {
- delete _frameMinutes;
- delete _frameHour;
- delete _frameSun;
- delete _frameDate;
+ SAFE_DELETE(_frameMinutes);
+ SAFE_DELETE(_frameHour);
+ SAFE_DELETE(_frameSun);
+ SAFE_DELETE(_frameDate);
// Zero passed pointers
_engine = NULL;
@@ -291,8 +291,8 @@ TrainLine::TrainLine(LastExpressEngine *engine) : _engine(engine), _frameLine1(N
}
TrainLine::~TrainLine() {
- delete _frameLine1;
- delete _frameLine2;
+ SAFE_DELETE(_frameLine1);
+ SAFE_DELETE(_frameLine2);
// Zero passed pointers
_engine = NULL;
@@ -369,8 +369,8 @@ Menu::Menu(LastExpressEngine *engine) : _engine(engine),
}
Menu::~Menu() {
- delete _clock;
- delete _trainLine;
+ SAFE_DELETE(_clock);
+ SAFE_DELETE(_trainLine);
SAFE_DELETE(_seqTooltips);
SAFE_DELETE(_seqEggButtons);
diff --git a/engines/lastexpress/game/scenes.cpp b/engines/lastexpress/game/scenes.cpp
index 3f9aa0b3b3..15fe0617d8 100644
--- a/engines/lastexpress/game/scenes.cpp
+++ b/engines/lastexpress/game/scenes.cpp
@@ -51,8 +51,6 @@ SceneManager::SceneManager(LastExpressEngine *engine) : _engine(engine),
}
SceneManager::~SceneManager() {
- delete _sceneLoader;
-
// Clear frames
for (Common::List<SequenceFrame *>::iterator door = _doors.begin(); door != _doors.end(); ++door)
SAFE_DELETE(*door);
@@ -63,8 +61,9 @@ SceneManager::~SceneManager() {
SAFE_DELETE(_clockMinutes);
// Clear frame queue
- for (Common::List<SequenceFrame *>::iterator i = _queue.begin(); i != _queue.end(); ++i)
- SAFE_DELETE(*i);
+ _queue.clear();
+
+ SAFE_DELETE(_sceneLoader);
// Zero-out passed pointers
_engine = NULL;
diff --git a/engines/lastexpress/game/sound.cpp b/engines/lastexpress/game/sound.cpp
index 2249109fe9..b28583f729 100644
--- a/engines/lastexpress/game/sound.cpp
+++ b/engines/lastexpress/game/sound.cpp
@@ -118,9 +118,12 @@ SoundManager::SoundManager(LastExpressEngine *engine) : _engine(engine), _state(
}
SoundManager::~SoundManager() {
+ for (Common::List<SoundEntry *>::iterator i = _cache.begin(); i != _cache.end(); ++i)
+ SAFE_DELETE(*i);
+
_cache.clear();
- delete _soundStream;
+ SAFE_DELETE(_soundStream);
// Zero passed pointers
_engine = NULL;
@@ -134,6 +137,7 @@ void SoundManager::handleTimer() {
for (Common::List<SoundEntry *>::iterator i = _cache.begin(); i != _cache.end(); ++i) {
SoundEntry *entry = (*i);
if (entry->stream == NULL) {
+ SAFE_DELETE(*i);
i = _cache.reverse_erase(i);
continue;
} else if (!entry->isStreamed) {
@@ -191,7 +195,7 @@ void SoundManager::clearQueue() {
// Delete entry
removeEntry(entry);
- delete entry;
+ SAFE_DELETE(entry);
i = _cache.reverse_erase(i);
}
diff --git a/engines/lastexpress/game/sound.h b/engines/lastexpress/game/sound.h
index cf08cd7ee8..edb6086d88 100644
--- a/engines/lastexpress/game/sound.h
+++ b/engines/lastexpress/game/sound.h
@@ -71,6 +71,8 @@
#include "lastexpress/shared.h"
+#include "lastexpress/helpers.h"
+
#include "common/list.h"
#include "common/system.h"
#include "common/serializer.h"
@@ -286,7 +288,10 @@ private:
}
~SoundEntry() {
- delete stream;
+ // Entries that have been queued would have their streamed disposed automatically
+ if (!isStreamed)
+ SAFE_DELETE(stream);
+
//delete subtitle;
}
};
diff --git a/engines/lastexpress/game/state.cpp b/engines/lastexpress/game/state.cpp
index 9586c58ceb..45cb2c58ab 100644
--- a/engines/lastexpress/game/state.cpp
+++ b/engines/lastexpress/game/state.cpp
@@ -42,11 +42,11 @@ State::State(LastExpressEngine *engine) : _engine(engine), _timer(0) {
}
State::~State() {
- delete _inventory;
- delete _objects;
- delete _savepoints;
- delete _state;
- delete _flags;
+ SAFE_DELETE(_inventory);
+ SAFE_DELETE(_objects);
+ SAFE_DELETE(_savepoints);
+ SAFE_DELETE(_state);
+ SAFE_DELETE(_flags);
// Zero passed pointers
_engine = NULL;
diff --git a/engines/lastexpress/lastexpress.cpp b/engines/lastexpress/lastexpress.cpp
index b2809a2b99..91ef2f799d 100644
--- a/engines/lastexpress/lastexpress.cpp
+++ b/engines/lastexpress/lastexpress.cpp
@@ -55,7 +55,7 @@ LastExpressEngine::LastExpressEngine(OSystem *syst, const ADGameDescription *gd)
Engine(syst), _gameDescription(gd), _debugger(NULL), _cursor(NULL),
_font(NULL), _logic(NULL), _menu(NULL), _frameCounter(0), _lastFrameCount(0),
_graphicsMan(NULL), _resMan(NULL), _sceneMan(NULL), _soundMan(NULL),
- eventMouse(NULL), eventTick(NULL), eventMouseBackup(NULL), eventTickBackup(NULL) {
+ _eventMouse(NULL), _eventTick(NULL), _eventMouseBackup(NULL), _eventTickBackup(NULL) {
// Adding the default directories
const Common::FSNode gameDataDir(ConfMan.get("path"));
@@ -80,21 +80,21 @@ LastExpressEngine::~LastExpressEngine() {
_timer->removeTimerProc(&soundTimer);
// Delete the remaining objects
- delete _cursor;
- delete _font;
- delete _logic;
- delete _menu;
- delete _graphicsMan;
- delete _resMan;
- delete _sceneMan;
- delete _soundMan;
- delete _debugger;
+ SAFE_DELETE(_cursor);
+ SAFE_DELETE(_font);
+ SAFE_DELETE(_logic);
+ SAFE_DELETE(_menu);
+ SAFE_DELETE(_graphicsMan);
+ SAFE_DELETE(_resMan);
+ SAFE_DELETE(_sceneMan);
+ SAFE_DELETE(_soundMan);
+ SAFE_DELETE(_debugger);
// Cleanup event handlers
- SAFE_DELETE(eventMouse);
- SAFE_DELETE(eventTick);
- SAFE_DELETE(eventMouseBackup);
- SAFE_DELETE(eventTickBackup);
+ SAFE_DELETE(_eventMouse);
+ SAFE_DELETE(_eventTick);
+ SAFE_DELETE(_eventMouseBackup);
+ SAFE_DELETE(_eventTickBackup);
// Zero passed pointers
_gameDescription = NULL;
@@ -218,19 +218,19 @@ bool LastExpressEngine::handleEvents() {
getGameLogic()->getGameState()->getGameFlags()->frameInterval = true;
_lastFrameCount = _frameCounter;
- if (eventMouse && eventMouse->isValid())
- (*eventMouse)(ev);
+ if (_eventMouse && _eventMouse->isValid())
+ (*_eventMouse)(ev);
break;
case Common::EVENT_RBUTTONUP:
getGameLogic()->getGameState()->getGameFlags()->mouseRightClick = true;
- if (eventMouse && eventMouse->isValid())
- (*eventMouse)(ev);
+ if (_eventMouse && _eventMouse->isValid())
+ (*_eventMouse)(ev);
break;
case Common::EVENT_MOUSEMOVE:
- if (eventMouse && eventMouse->isValid())
- (*eventMouse)(ev);
+ if (_eventMouse && _eventMouse->isValid())
+ (*_eventMouse)(ev);
break;
case Common::EVENT_QUIT:
@@ -243,8 +243,8 @@ bool LastExpressEngine::handleEvents() {
}
// Game tick event
- if (eventTick && eventTick->isValid())
- (*eventTick)(ev);
+ if (_eventTick && _eventTick->isValid())
+ (*_eventTick)(ev);
// Update the screen
_graphicsMan->update();
@@ -279,25 +279,25 @@ void LastExpressEngine::handleSoundTimer() {
/// Event Handling
///////////////////////////////////////////////////////////////////////////////////
void LastExpressEngine::backupEventHandlers() {
- eventMouseBackup = eventMouse;
- eventTickBackup = eventTick;
+ _eventMouseBackup = _eventMouse;
+ _eventTickBackup = _eventTick;
}
void LastExpressEngine::restoreEventHandlers() {
- if (eventMouseBackup == NULL || eventTickBackup == NULL)
+ if (_eventMouseBackup == NULL || _eventTickBackup == NULL)
error("LastExpressEngine::restoreEventHandlers: restore called before backing up the event handlers!");
- eventMouse = eventMouseBackup;
- eventTick = eventTickBackup;
+ _eventMouse = _eventMouseBackup;
+ _eventTick = _eventTickBackup;
}
void LastExpressEngine::setEventHandlers(EventHandler::EventFunction *mouse, EventHandler::EventFunction *tick) {
// Cleanup previous event handlers
- delete eventMouse;
- delete eventTick;
+ delete _eventMouse;
+ delete _eventTick;
- eventMouse = mouse;
- eventTick = tick;
+ _eventMouse = mouse;
+ _eventTick = tick;
}
///////////////////////////////////////////////////////////////////////////////////
diff --git a/engines/lastexpress/lastexpress.h b/engines/lastexpress/lastexpress.h
index ac05c5a405..a602e4956b 100644
--- a/engines/lastexpress/lastexpress.h
+++ b/engines/lastexpress/lastexpress.h
@@ -141,11 +141,11 @@ private:
SoundManager *_soundMan;
// Event handlers
- EventHandler::EventFunction *eventMouse;
- EventHandler::EventFunction *eventTick;
+ EventHandler::EventFunction *_eventMouse;
+ EventHandler::EventFunction *_eventTick;
- EventHandler::EventFunction *eventMouseBackup;
- EventHandler::EventFunction *eventTickBackup;
+ EventHandler::EventFunction *_eventMouseBackup;
+ EventHandler::EventFunction *_eventTickBackup;
};
} // End of namespace LastExpress
diff --git a/engines/lastexpress/resource.cpp b/engines/lastexpress/resource.cpp
index 57bc12a185..5a77b23602 100644
--- a/engines/lastexpress/resource.cpp
+++ b/engines/lastexpress/resource.cpp
@@ -30,6 +30,7 @@
#include "lastexpress/data/font.h"
#include "lastexpress/debug.h"
+#include "lastexpress/helpers.h"
#include "common/debug.h"
#include "common/file.h"
@@ -107,7 +108,7 @@ bool ResourceManager::loadArchive(ArchiveIndex type) {
void ResourceManager::reset() {
// Free the loaded archives
for (Common::Array<HPFArchive *>::iterator it = _archives.begin(); it != _archives.end(); ++it)
- delete (*it);
+ SAFE_DELETE(*it);
_archives.clear();
}