diff options
author | D G Turner | 2011-03-24 20:59:20 +0000 |
---|---|---|
committer | D G Turner | 2011-03-24 20:59:20 +0000 |
commit | bcb9179a8b4128469700af62463674febf2785c6 (patch) | |
tree | 953cba9c26def21fa4ffb9fb16953779c4b1bdad | |
parent | e6080087c8453b5a0345bf62b2cd3809e46f7591 (diff) | |
download | scummvm-rg350-bcb9179a8b4128469700af62463674febf2785c6.tar.gz scummvm-rg350-bcb9179a8b4128469700af62463674febf2785c6.tar.bz2 scummvm-rg350-bcb9179a8b4128469700af62463674febf2785c6.zip |
SCI: Close Memory Leak from kAnimate Calls.
This was due to a missing destructor in the HunkTable.
Thanks to wjp for this patch.
-rw-r--r-- | engines/sci/engine/segment.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/engines/sci/engine/segment.h b/engines/sci/engine/segment.h index ffde01f934..947953e8c3 100644 --- a/engines/sci/engine/segment.h +++ b/engines/sci/engine/segment.h @@ -318,6 +318,12 @@ struct ListTable : public SegmentObjTable<List> { /* HunkTable */ struct HunkTable : public SegmentObjTable<Hunk> { HunkTable() : SegmentObjTable<Hunk>(SEG_TYPE_HUNK) {} + virtual ~HunkTable() { + for (uint i = 0; i < _table.size(); i++) { + if (isValidEntry(i)) + freeEntryContents(i); + } + } void freeEntryContents(int idx) { free(_table[idx].mem); |