aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorChristopher Page2008-05-28 23:28:11 +0000
committerChristopher Page2008-05-28 23:28:11 +0000
commit203f62ad7cfc3f931c98c8fc3ecdbb01924b896f (patch)
tree4bd5b4c4d3c0b85e9b5bb702b191f9ba08648670 /engines
parent8297ead2671e43963098a3dc41e8e75fdbce4ddc (diff)
downloadscummvm-rg350-203f62ad7cfc3f931c98c8fc3ecdbb01924b896f.tar.gz
scummvm-rg350-203f62ad7cfc3f931c98c8fc3ecdbb01924b896f.tar.bz2
scummvm-rg350-203f62ad7cfc3f931c98c8fc3ecdbb01924b896f.zip
LURE: Fixed some memory leaks when returning to the launcher from the LURE engine
svn-id: r32357
Diffstat (limited to 'engines')
-rw-r--r--engines/lure/lure.cpp4
-rw-r--r--engines/lure/lure.h2
-rw-r--r--engines/lure/menu.cpp5
-rw-r--r--engines/lure/menu.h1
-rw-r--r--engines/lure/palette.cpp6
-rw-r--r--engines/lure/palette.h1
-rw-r--r--engines/lure/res.cpp1
7 files changed, 19 insertions, 1 deletions
diff --git a/engines/lure/lure.cpp b/engines/lure/lure.cpp
index 06d3b1984e..fa6323af07 100644
--- a/engines/lure/lure.cpp
+++ b/engines/lure/lure.cpp
@@ -164,10 +164,14 @@ 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/lure.h b/engines/lure/lure.h
index d66f446247..b4cec38ef3 100644
--- a/engines/lure/lure.h
+++ b/engines/lure/lure.h
@@ -70,7 +70,7 @@ public:
virtual int init();
virtual int go();
virtual void pauseEngineIntern(bool pause);
- void quitGame();
+ //void quitGame(); This is not being used
Disk &disk() { return *_disk; }
diff --git a/engines/lure/menu.cpp b/engines/lure/menu.cpp
index cecc415499..0b4ef06081 100644
--- a/engines/lure/menu.cpp
+++ b/engines/lure/menu.cpp
@@ -57,6 +57,11 @@ MenuRecord::MenuRecord(const MenuRecordBounds *bounds, int numParams, ...) {
_width = (bounds->contentsWidth + 3) << 3;
}
+MenuRecord::~MenuRecord() {
+ free(_entries);
+ _entries = NULL;
+}
+
const char *MenuRecord::getEntry(uint8 index) {
if (index >= _numEntries) error("Invalid menuitem index specified: %d", index);
return _entries[index];
diff --git a/engines/lure/menu.h b/engines/lure/menu.h
index b5b7769e34..fcc6308375 100644
--- a/engines/lure/menu.h
+++ b/engines/lure/menu.h
@@ -56,6 +56,7 @@ private:
uint8 _numEntries;
public:
MenuRecord(const MenuRecordBounds *bounds, int numParams, ...);
+ ~MenuRecord();
uint16 xstart() { return _xstart; }
uint16 width() { return _width; }
diff --git a/engines/lure/palette.cpp b/engines/lure/palette.cpp
index 03161032c0..badc3c96b0 100644
--- a/engines/lure/palette.cpp
+++ b/engines/lure/palette.cpp
@@ -106,6 +106,12 @@ Palette::Palette(uint16 resourceId, PaletteSource paletteSource) {
delete srcData;
}
+// Destructor
+
+Palette::~Palette() {
+ delete _palette;
+}
+
void Palette::convertRgb64Palette(const byte *srcPalette, uint16 srcNumEntries) {
byte *pDest = _palette->data();
const byte *pSrc = srcPalette;
diff --git a/engines/lure/palette.h b/engines/lure/palette.h
index 1481e22775..9420079346 100644
--- a/engines/lure/palette.h
+++ b/engines/lure/palette.h
@@ -46,6 +46,7 @@ public:
Palette(uint16 srcNumEntries, const byte *srcData, PaletteSource paletteSource);
Palette(Palette &src);
Palette(uint16 resourceId, PaletteSource paletteSource = DEFAULT);
+ ~Palette();
uint8 *data() { return _palette->data(); }
MemoryBlock *palette() { return _palette; }
diff --git a/engines/lure/res.cpp b/engines/lure/res.cpp
index f2997d5d17..68de260061 100644
--- a/engines/lure/res.cpp
+++ b/engines/lure/res.cpp
@@ -349,6 +349,7 @@ void Resources::reloadData() {
_indexedRoomExitHospots.push_back(RoomExitIndexedHotspotList::value_type(new RoomExitIndexedHotspotData(indexedRec)));
indexedRec++;
}
+ delete mb;
// Initialise delay list
_delayList.clear(true);