diff options
author | Johannes Schickel | 2008-03-28 06:03:59 +0000 |
---|---|---|
committer | Johannes Schickel | 2008-03-28 06:03:59 +0000 |
commit | e29b4bb0cd4b4c71a3a53646b0eb728e7f156063 (patch) | |
tree | 5322a4a5791066416b84d72bc5c26a8dc01c8732 /engines/kyra/resource.cpp | |
parent | dc1a7004e949a5c1b8936f73387905e0f96f7e5c (diff) | |
download | scummvm-rg350-e29b4bb0cd4b4c71a3a53646b0eb728e7f156063.tar.gz scummvm-rg350-e29b4bb0cd4b4c71a3a53646b0eb728e7f156063.tar.bz2 scummvm-rg350-e29b4bb0cd4b4c71a3a53646b0eb728e7f156063.zip |
Committed shared pointer implementation of patch #1895703 "COMMON: Managed List".
Unlike the patch on the tracker this commit includes documentation for SharedPtr.
svn-id: r31287
Diffstat (limited to 'engines/kyra/resource.cpp')
-rw-r--r-- | engines/kyra/resource.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/engines/kyra/resource.cpp b/engines/kyra/resource.cpp index 0f7da48495..3cf8336e7f 100644 --- a/engines/kyra/resource.cpp +++ b/engines/kyra/resource.cpp @@ -29,7 +29,6 @@ #include "common/file.h" #include "common/fs.h" #include "common/func.h" -#include "common/algorithm.h" #include "gui/message.h" @@ -43,8 +42,6 @@ Resource::Resource(KyraEngine *vm) : _loaders(), _map(), _vm(vm) { Resource::~Resource() { unloadAllPakFiles(); - for (LoaderIterator i = _loaders.begin(); i != _loaders.end(); ++i) - delete (*i); _loaders.clear(); } @@ -666,17 +663,18 @@ Common::SeekableReadStream *ResLoaderIns::loadFileFromArchive(const Common::Stri } void Resource::initializeLoaders() { - _loaders.push_back(new ResLoaderPak()); - _loaders.push_back(new ResLoaderIns()); + _loaders.push_back(LoaderList::value_type(new ResLoaderPak())); + _loaders.push_back(LoaderList::value_type(new ResLoaderIns())); } const ResArchiveLoader *Resource::getLoader(ResFileEntry::kType type) const { for (CLoaderIterator i = _loaders.begin(); i != _loaders.end(); ++i) { if ((*i)->getType() == type) - return *i; + return (*i).get(); } return 0; } } // end of namespace Kyra + |