LURE: Fixed some memory leaks when returning to the launcher from the LURE engine

svn-id: r32357
This commit is contained in:
Christopher Page 2008-05-28 23:28:11 +00:00
parent 8297ead267
commit 203f62ad7c
7 changed files with 19 additions and 1 deletions

@ -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];

@ -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; }

@ -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];

@ -56,6 +56,7 @@ private:
uint8 _numEntries;
public:
MenuRecord(const MenuRecordBounds *bounds, int numParams, ...);
~MenuRecord();
uint16 xstart() { return _xstart; }
uint16 width() { return _width; }

@ -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;

@ -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; }

@ -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);