From 203f62ad7cfc3f931c98c8fc3ecdbb01924b896f Mon Sep 17 00:00:00 2001 From: Christopher Page Date: Wed, 28 May 2008 23:28:11 +0000 Subject: LURE: Fixed some memory leaks when returning to the launcher from the LURE engine svn-id: r32357 --- engines/lure/lure.cpp | 4 ++++ engines/lure/lure.h | 2 +- engines/lure/menu.cpp | 5 +++++ engines/lure/menu.h | 1 + engines/lure/palette.cpp | 6 ++++++ engines/lure/palette.h | 1 + engines/lure/res.cpp | 1 + 7 files changed, 19 insertions(+), 1 deletion(-) (limited to 'engines') 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); -- cgit v1.2.3