diff options
author | Nipun Garg | 2019-07-18 01:11:13 +0530 |
---|---|---|
committer | Eugene Sandulenko | 2019-09-03 17:17:22 +0200 |
commit | adb43a79b7ee01cda7c33f48d778fc9b57358716 (patch) | |
tree | be266186ab1fd69f00e22bd3e2408af5935a95b7 | |
parent | 7709b2828b0148ed6662da891c493d73d95c25de (diff) | |
download | scummvm-rg350-adb43a79b7ee01cda7c33f48d778fc9b57358716.tar.gz scummvm-rg350-adb43a79b7ee01cda7c33f48d778fc9b57358716.tar.bz2 scummvm-rg350-adb43a79b7ee01cda7c33f48d778fc9b57358716.zip |
HDB: Fix memory leaks in AI lists
-rw-r--r-- | engines/hdb/ai-init.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/engines/hdb/ai-init.cpp b/engines/hdb/ai-init.cpp index 4753047757..5a71b4bb17 100644 --- a/engines/hdb/ai-init.cpp +++ b/engines/hdb/ai-init.cpp @@ -915,10 +915,25 @@ AI::AI() { } AI::~AI() { + for (uint i = 0; i < _ents->size(); i++) { + delete _ents->operator[](i); + } delete _ents; + for (uint i = 0; i < _floats->size(); i++) { + delete _floats->operator[](i); + } delete _floats; + for (uint i = 0; i < _arrowPaths->size(); i++) { + delete _arrowPaths->operator[](i); + } delete _arrowPaths; + for (uint i = 0; i < _triggerList->size(); i++) { + delete _triggerList->operator[](i); + } delete _triggerList; + for (uint i = 0; i < _hereList->size(); i++) { + delete _hereList->operator[](i); + } delete _hereList; memset(&_inventory, 0, sizeof(InvEnt) * kMaxInventory); @@ -930,6 +945,12 @@ AI::~AI() { memset(_clubLeftGfx, 0, sizeof(_clubLeftGfx)); memset(_clubRightGfx, 0, sizeof(_clubRightGfx)); memset(_slugAttackGfx, 0, sizeof(_slugAttackGfx)); + + // Free AnimTargets + + for (uint i = 0; i < _animTargets.size(); i++) { + delete _animTargets[i]; + } } bool AI::init() { |