From cf3719d613a0947ce46b5541e378532b4cbcf394 Mon Sep 17 00:00:00 2001 From: Travis Howell Date: Wed, 25 Jul 2007 11:29:47 +0000 Subject: Add eriktorbjorn's patch for bug #1498158 - AOGS: Itemheap overflow on 64bit systems. svn-id: r28189 --- engines/agos/agos.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'engines/agos/agos.cpp') diff --git a/engines/agos/agos.cpp b/engines/agos/agos.cpp index ae7f692c3f..ba429b510c 100644 --- a/engines/agos/agos.cpp +++ b/engines/agos/agos.cpp @@ -148,10 +148,6 @@ AGOSEngine::AGOSEngine(OSystem *syst) _itemArraySize = 0; _itemArrayInited = 0; - _itemHeapPtr = 0; - _itemHeapCurPos = 0; - _itemHeapSize = 0; - _iconFilePtr = 0; _codePtr = 0; @@ -920,7 +916,11 @@ AGOSEngine::~AGOSEngine() { _midi.close(); - free(_itemHeapPtr - _itemHeapCurPos); + for (uint i = 0; i < _itemHeap.size(); i++) { + delete [] _itemHeap[i]; + } + _itemHeap.clear(); + free(_tablesHeapPtr - _tablesHeapCurPos); free(_gameOffsetsPtr); @@ -1054,7 +1054,11 @@ void AGOSEngine::shutdown() { _midi.close(); - free(_itemHeapPtr - _itemHeapCurPos); + for (uint i = 0; i < _itemHeap.size(); i++) { + delete [] _itemHeap[i]; + } + _itemHeap.clear(); + free(_tablesHeapPtr - _tablesHeapCurPos); free(_gameOffsetsPtr); -- cgit v1.2.3