aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorTravis Howell2006-04-24 06:02:47 +0000
committerTravis Howell2006-04-24 06:02:47 +0000
commitf08ed105e96e5a41bcbda55d2a83586b87e98b1b (patch)
tree9b867121660067fd074d67de4a8ef51f4eea8e43 /engines
parent1fa5c82301b49972ab23a5f4e11063977cb77f7d (diff)
downloadscummvm-rg350-f08ed105e96e5a41bcbda55d2a83586b87e98b1b.tar.gz
scummvm-rg350-f08ed105e96e5a41bcbda55d2a83586b87e98b1b.tar.bz2
scummvm-rg350-f08ed105e96e5a41bcbda55d2a83586b87e98b1b.zip
Fix memory leak in readGamePcText()
svn-id: r22133
Diffstat (limited to 'engines')
-rw-r--r--engines/simon/res.cpp10
-rw-r--r--engines/simon/simon.cpp1
-rw-r--r--engines/simon/simon.h1
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;