diff options
author | Paul Gilbert | 2016-03-08 18:48:26 -0500 |
---|---|---|
committer | Paul Gilbert | 2016-03-08 18:48:26 -0500 |
commit | 0645a3dbde92fe4fbd46895cf24470535b7245aa (patch) | |
tree | 09ab6dab848c07baa28defbb2e94d3ce8f27d36d /engines/titanic/simple_file.cpp | |
parent | 3103c9aaa9d14a5f6ad360eab2637c0be3141428 (diff) | |
download | scummvm-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.cpp | 20 |
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) { |