aboutsummaryrefslogtreecommitdiff
path: root/engines/toon/resource.cpp
diff options
context:
space:
mode:
authorDavid Turner2010-11-10 06:22:18 +0000
committerDavid Turner2010-11-10 06:22:18 +0000
commit52ecbd4305d2f728ea8db11dab28e9a56c9dcb6e (patch)
treec8d08f83e8014acfe70ac4f4798a8856d7e21624 /engines/toon/resource.cpp
parent7ad677afc8ad3768a8c903afed5881403e1a026d (diff)
downloadscummvm-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.cpp24
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