aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/bladerunner.cpp
diff options
context:
space:
mode:
authorThomas Fach-Pedersen2015-02-10 21:09:12 +0100
committerEugene Sandulenko2016-09-29 22:33:38 +0200
commitda33169b75021d19f35867aca2b9322c1aec0005 (patch)
tree56a087fa9f554e1f272bbd6b15045fe3eb928d98 /engines/bladerunner/bladerunner.cpp
parenteba8ed5c6642cf3686c4fb7e28ceca9299e3a33a (diff)
downloadscummvm-rg350-da33169b75021d19f35867aca2b9322c1aec0005.tar.gz
scummvm-rg350-da33169b75021d19f35867aca2b9322c1aec0005.tar.bz2
scummvm-rg350-da33169b75021d19f35867aca2b9322c1aec0005.zip
BLADERUNNER: Fix a couple of memory leaks
Diffstat (limited to 'engines/bladerunner/bladerunner.cpp')
-rw-r--r--engines/bladerunner/bladerunner.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index d69a77c381..13ccae7fed 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -71,15 +71,22 @@ BladeRunnerEngine::BladeRunnerEngine(OSystem *syst)
_settings = new Settings(this);
_sliceAnimations = new SliceAnimations(this);
_sliceRenderer = new SliceRenderer(this);
+
+ _zBuffer1 = nullptr;
+ _zBuffer2 = nullptr;
+
+ _actorNames = nullptr;
}
BladeRunnerEngine::~BladeRunnerEngine() {
+ delete _actorNames;
+
delete _sliceRenderer;
delete _sliceAnimations;
delete _settings;
delete _script;
delete _scene;
- delete _gameVars;
+ delete[] _gameVars;
delete _gameFlags;
delete _gameInfo;
delete _clues;
@@ -90,6 +97,9 @@ BladeRunnerEngine::~BladeRunnerEngine() {
_surface1.free();
_surface2.free();
+
+ delete[] _zBuffer1;
+ delete[] _zBuffer2;
}
bool BladeRunnerEngine::hasFeature(EngineFeature f) const {
@@ -102,8 +112,10 @@ Common::Error BladeRunnerEngine::run() {
_system->showMouse(true);
- if (!startup())
+ if (!startup()) {
+ shutdown();
return Common::Error(Common::kUnknownError, "Failed to initialize resources");
+ }
if (warnUserAboutUnsupportedGame()) {
init2();