From f08ed105e96e5a41bcbda55d2a83586b87e98b1b Mon Sep 17 00:00:00 2001 From: Travis Howell Date: Mon, 24 Apr 2006 06:02:47 +0000 Subject: Fix memory leak in readGamePcText() svn-id: r22133 --- engines/simon/res.cpp | 10 ++++------ engines/simon/simon.cpp | 1 + engines/simon/simon.h | 1 + 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/engines/simon/res.cpp b/engines/simon/res.cpp index 103eb772af..a2c25f3ef7 100644 --- a/engines/simon/res.cpp +++ b/engines/simon/res.cpp @@ -253,16 +253,14 @@ void SimonEngine::loadGamePcFile() { } void SimonEngine::readGamePcText(Common::File *in) { - byte *text_mem; - _textSize = in->readUint32BE(); - text_mem = (byte *)malloc(_textSize); - if (text_mem == NULL) + _textMem = (byte *)malloc(_textSize); + if (_textMem == NULL) error("Out of text memory"); - in->read(text_mem, _textSize); + in->read(_textMem, _textSize); - setupStringTable(text_mem, _stringTabNum); + setupStringTable(_textMem, _stringTabNum); } void SimonEngine::readItemFromGamePc(Common::File *in, Item *item) { diff --git a/engines/simon/simon.cpp b/engines/simon/simon.cpp index 79860bb251..552b828736 100644 --- a/engines/simon/simon.cpp +++ b/engines/simon/simon.cpp @@ -580,6 +580,7 @@ SimonEngine::~SimonEngine() { free(_stringTabPtr); free(_strippedTxtMem); free(_tblList); + free(_textMem); free(_backGroundBuf); free(_frontBuf); diff --git a/engines/simon/simon.h b/engines/simon/simon.h index 799a663098..70e667a3d2 100644 --- a/engines/simon/simon.h +++ b/engines/simon/simon.h @@ -203,6 +203,7 @@ protected: Common::File *_gameFile; byte *_strippedTxtMem; + byte *_textMem; uint _textSize; uint _stringTabNum, _stringTabPos, _stringtab_numalloc; byte **_stringTabPtr; -- cgit v1.2.3