aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/simple_file.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2016-03-08 18:48:26 -0500
committerPaul Gilbert2016-03-08 18:48:26 -0500
commit0645a3dbde92fe4fbd46895cf24470535b7245aa (patch)
tree09ab6dab848c07baa28defbb2e94d3ce8f27d36d /engines/titanic/simple_file.cpp
parent3103c9aaa9d14a5f6ad360eab2637c0be3141428 (diff)
downloadscummvm-rg350-0645a3dbde92fe4fbd46895cf24470535b7245aa.tar.gz
scummvm-rg350-0645a3dbde92fe4fbd46895cf24470535b7245aa.tar.bz2
scummvm-rg350-0645a3dbde92fe4fbd46895cf24470535b7245aa.zip
TITANIC: Fix crash when compressed newgame.st file was closed
Diffstat (limited to 'engines/titanic/simple_file.cpp')
-rw-r--r--engines/titanic/simple_file.cpp20
1 files changed, 8 insertions, 12 deletions
diff --git a/engines/titanic/simple_file.cpp b/engines/titanic/simple_file.cpp
index ef6f26d827..4be8bb3d88 100644
--- a/engines/titanic/simple_file.cpp
+++ b/engines/titanic/simple_file.cpp
@@ -29,15 +29,7 @@ SimpleFile::SimpleFile(): _inStream(nullptr), _outStream(nullptr), _lineCount(1)
}
SimpleFile::~SimpleFile() {
- _file.close();
-}
-
-void SimpleFile::open(const Common::String &name) {
close();
-
- if (!_file.open(name))
- error("Could not find file - %s", name.c_str());
- _inStream = &_file;
}
void SimpleFile::open(Common::SeekableReadStream *stream) {
@@ -51,12 +43,16 @@ void SimpleFile::open(Common::OutSaveFile *stream) {
}
void SimpleFile::close() {
- _file.close();
- if (_outStream)
+ if (_outStream) {
_outStream->finalize();
+ delete _outStream;
+ _outStream = nullptr;
+ }
- _inStream = nullptr;
- _outStream = nullptr;
+ if (_inStream) {
+ delete _inStream;
+ _inStream = nullptr;
+ }
}
void SimpleFile::safeRead(void *dst, size_t count) {