aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/scene.cpp
diff options
context:
space:
mode:
authorColin Snover2017-11-14 20:48:26 -0600
committerEugene Sandulenko2017-11-18 22:35:12 +0100
commit073692fd5250ae6fb2224f791821c5bd225ba5f0 (patch)
tree69f215b63897daf182dc01b60d6c3a15bdfef4ae /engines/fullpipe/scene.cpp
parent0e28f2be4776f2b581ce47865468bad20b84e547 (diff)
downloadscummvm-rg350-073692fd5250ae6fb2224f791821c5bd225ba5f0.tar.gz
scummvm-rg350-073692fd5250ae6fb2224f791821c5bd225ba5f0.tar.bz2
scummvm-rg350-073692fd5250ae6fb2224f791821c5bd225ba5f0.zip
FULLPIPE: Reduce chance of Scene leaks, remove unused SceneTag member
Diffstat (limited to 'engines/fullpipe/scene.cpp')
-rw-r--r--engines/fullpipe/scene.cpp27
1 files changed, 10 insertions, 17 deletions
diff --git a/engines/fullpipe/scene.cpp b/engines/fullpipe/scene.cpp
index 751f9924e0..76384c3785 100644
--- a/engines/fullpipe/scene.cpp
+++ b/engines/fullpipe/scene.cpp
@@ -68,18 +68,17 @@ bool SceneTagList::load(MfcArchive &file) {
return true;
}
-SceneTag::SceneTag() {
- _field_4 = 0;
- _scene = 0;
- _sceneId = 0;
+SceneTag::SceneTag() :
+ _scene(nullptr),
+ _sceneId(0) {}
+
+SceneTag::~SceneTag() {
+ delete _scene;
}
bool SceneTag::load(MfcArchive &file) {
debugC(5, kDebugLoading, "SceneTag::load()");
- _field_4 = 0;
- _scene = 0;
-
_sceneId = file.readUint16LE();
_tag = file.readPascalString();
@@ -89,11 +88,6 @@ bool SceneTag::load(MfcArchive &file) {
return true;
}
-SceneTag::~SceneTag() {
- delete _scene;
- delete _field_4;
-}
-
void SceneTag::loadScene() {
Common::String archname = genFileName(0, _sceneId, "nl");
@@ -101,20 +95,19 @@ void SceneTag::loadScene() {
Common::String fname = genFileName(0, _sceneId, "sc");
- Common::SeekableReadStream *file = arch->createReadStreamForMember(fname);
+ Common::ScopedPtr<Common::SeekableReadStream> file(arch->createReadStreamForMember(fname));
+ delete _scene;
_scene = new Scene();
- MfcArchive archive(file);
+ MfcArchive archive(file.get());
_scene->load(archive);
if (_scene->_shadows)
_scene->_shadows->init();
- delete file;
-
- g_fp->_currArchive = 0;
+ g_fp->_currArchive = nullptr;
}
Scene::Scene() : _sceneId(0), _field_BC(0) {}