diff options
author | David Turner | 2010-11-10 06:22:18 +0000 |
---|---|---|
committer | David Turner | 2010-11-10 06:22:18 +0000 |
commit | 52ecbd4305d2f728ea8db11dab28e9a56c9dcb6e (patch) | |
tree | c8d08f83e8014acfe70ac4f4798a8856d7e21624 /engines/toon/resource.cpp | |
parent | 7ad677afc8ad3768a8c903afed5881403e1a026d (diff) | |
download | scummvm-rg350-52ecbd4305d2f728ea8db11dab28e9a56c9dcb6e.tar.gz scummvm-rg350-52ecbd4305d2f728ea8db11dab28e9a56c9dcb6e.tar.bz2 scummvm-rg350-52ecbd4305d2f728ea8db11dab28e9a56c9dcb6e.zip |
TOON: Even more corrections to close memory leaks.
These corrections close a number of leaks in the Toon engine reported by running Valgrind with --leak-check=full option, but a few still remain.
svn-id: r54185
Diffstat (limited to 'engines/toon/resource.cpp')
-rw-r--r-- | engines/toon/resource.cpp | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/engines/toon/resource.cpp b/engines/toon/resource.cpp index 470c54f8f4..f76db47539 100644 --- a/engines/toon/resource.cpp +++ b/engines/toon/resource.cpp @@ -30,6 +30,17 @@ namespace Toon { +Resources::Resources(ToonEngine *vm) : _vm(vm) { +} + +Resources::~Resources() { + while(!_pakFiles.empty()) { + PakFile *temp = _pakFiles.back(); + _pakFiles.pop_back(); + delete temp; + } +} + void Resources::openPackage(Common::String fileName, bool preloadEntirePackage) { debugC(1, kDebugResource, "openPackage(%s, %d)", fileName.c_str(), (preloadEntirePackage) ? 1 : 0); @@ -39,7 +50,6 @@ void Resources::openPackage(Common::String fileName, bool preloadEntirePackage) if (!opened) return; - PakFile *pakFile = new PakFile(); pakFile->open(&file, fileName, preloadEntirePackage); @@ -59,10 +69,6 @@ void Resources::closePackage(Common::String fileName) { } } -Resources::Resources(ToonEngine *vm) : _vm(vm) { - -} - uint8 *Resources::getFileData(Common::String fileName, uint32 *fileSize) { debugC(4, kDebugResource, "getFileData(%s, fileSize)", fileName.c_str()); @@ -200,10 +206,6 @@ void PakFile::close() { } } -PakFile::~PakFile() { - close(); -} - PakFile::PakFile() { _bufferSize = 0; _buffer = NULL; @@ -211,4 +213,8 @@ PakFile::PakFile() { _fileHandle = NULL; } +PakFile::~PakFile() { + close(); +} + } // End of namespace Toon |