aboutsummaryrefslogtreecommitdiff
path: root/engines/cge
diff options
context:
space:
mode:
authorPaul Gilbert2011-08-06 22:14:23 +1000
committerPaul Gilbert2011-08-06 22:14:23 +1000
commit04e09e530a3bff231022ebf1c50ae5b70fc1c4a7 (patch)
tree1f40b4901aa67f42a70fe8f54cd93d59e0727fb9 /engines/cge
parent1208e7e5af5d5cf74c615f6b5e7f40800100d146 (diff)
downloadscummvm-rg350-04e09e530a3bff231022ebf1c50ae5b70fc1c4a7.tar.gz
scummvm-rg350-04e09e530a3bff231022ebf1c50ae5b70fc1c4a7.tar.bz2
scummvm-rg350-04e09e530a3bff231022ebf1c50ae5b70fc1c4a7.zip
CGE: Fix memory leaks in pocket list
Diffstat (limited to 'engines/cge')
-rw-r--r--engines/cge/cge.cpp10
-rw-r--r--engines/cge/cge_main.cpp1
2 files changed, 4 insertions, 7 deletions
diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp
index b38b6d392f..0d63b32d09 100644
--- a/engines/cge/cge.cpp
+++ b/engines/cge/cge.cpp
@@ -130,10 +130,8 @@ void CGEEngine::setup() {
_vga = new Vga(M13H);
_sys = new System(this);
_pocLight = new PocLight(this);
- for (int i = 0; i < kPocketNX; i++) {
- _pocket[i] = new Sprite(this, NULL);
- _pocket[i]->_flags._kill = false;
- }
+ for (int i = 0; i < kPocketNX; i++)
+ _pocket[i] = NULL;
_horzLine = new HorizLine(this);
_infoLine = new InfoLine(this, kInfoW);
_cavLight = new CavLight(this);
@@ -207,12 +205,12 @@ CGEEngine::~CGEEngine() {
delete _eventManager;
delete _fx;
delete _sound;
- for (int i = 0; i < kPocketNX; i++)
- delete _pocket[i];
delete _snail;
delete _snail_;
delete _hero;
+ for (int i = 0; _miniShpList[i]; ++i)
+ delete _miniShpList[i];
delete[] _miniShpList;
freeCaveValues();
diff --git a/engines/cge/cge_main.cpp b/engines/cge/cge_main.cpp
index 6b6f4ff971..fd45dd797f 100644
--- a/engines/cge/cge_main.cpp
+++ b/engines/cge/cge_main.cpp
@@ -356,7 +356,6 @@ void CGEEngine::syncGame(Common::SeekableReadStream *readStream, Common::WriteSt
for (i = 0; i < kPocketNX; i++) {
register int r = _pocref[i];
- delete _pocket[i];
_pocket[i] = (r < 0) ? NULL : _vga->_spareQ->locate(r);
}
}