From ba351015cbbdbfd75235996cfa4f177442448bba Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Fri, 25 Jul 2008 09:36:18 +0000 Subject: Fix to prevent attempt to delete a non-initialised object during game exit svn-id: r33283 --- engines/agos/agos.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'engines/agos') diff --git a/engines/agos/agos.cpp b/engines/agos/agos.cpp index 365f9fcde7..a9fd204d73 100644 --- a/engines/agos/agos.cpp +++ b/engines/agos/agos.cpp @@ -578,6 +578,8 @@ int AGOSEngine::init() { _midiEnabled = true; + } else { + _driver = NULL; } // allocate buffers @@ -881,7 +883,8 @@ AGOSEngine::~AGOSEngine() { delete _gameFile; _midi.close(); - delete _driver; + if (_driver) + delete _driver; AudioCD.destroy(); -- cgit v1.2.3 From 4f445e3deb2e468393a26166d46ed34e758ef316 Mon Sep 17 00:00:00 2001 From: Travis Howell Date: Sun, 27 Jul 2008 01:54:40 +0000 Subject: Fix buffer overflow in error message. svn-id: r33321 --- engines/agos/saveload.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'engines/agos') diff --git a/engines/agos/saveload.cpp b/engines/agos/saveload.cpp index 34e5f2cfeb..284c7979c0 100644 --- a/engines/agos/saveload.cpp +++ b/engines/agos/saveload.cpp @@ -75,7 +75,7 @@ int AGOSEngine::countSaveGames() { } char *AGOSEngine::genSaveName(int slot) { - static char buf[15]; + static char buf[20]; if (getGameId() == GID_DIMP) { sprintf(buf, "dimp.sav"); @@ -111,7 +111,7 @@ void AGOSEngine::quickLoadOrSave() { } bool success; - char buf[50]; + char buf[60]; char *filename = genSaveName(_saveLoadSlot); if (_saveLoadType == 2) { -- cgit v1.2.3 From 0be985ce833d03e4458bb4512d5bed377c13d9c7 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Tue, 29 Jul 2008 16:09:10 +0000 Subject: Changed class File (and derived classes) to only support read-only access; added a new class DumpFile for writing svn-id: r33412 --- engines/agos/debug.cpp | 4 ++-- engines/agos/saveload.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'engines/agos') diff --git a/engines/agos/debug.cpp b/engines/agos/debug.cpp index 76a0b8e76f..2cf285d56a 100644 --- a/engines/agos/debug.cpp +++ b/engines/agos/debug.cpp @@ -393,11 +393,11 @@ static const byte bmp_hdr[] = { }; void dumpBMP(const char *filename, int w, int h, const byte *bytes, const uint32 *palette) { - Common::File out; + Common::DumpFile out; byte my_hdr[sizeof(bmp_hdr)]; int i; - out.open(filename, Common::File::kFileWriteMode); + out.open(filename); if (!out.isOpen()) return; diff --git a/engines/agos/saveload.cpp b/engines/agos/saveload.cpp index 284c7979c0..4a5c43e706 100644 --- a/engines/agos/saveload.cpp +++ b/engines/agos/saveload.cpp @@ -978,7 +978,7 @@ bool AGOSEngine::loadGame(const char *filename, bool restartMode) { if (restartMode) { // Load restart state Common::File *file = new Common::File(); - file->open(filename, Common::File::kFileReadMode); + file->open(filename); f = file; } else { f = _saveFileMan->openForLoading(filename); @@ -1154,7 +1154,7 @@ bool AGOSEngine_Elvira2::loadGame(const char *filename, bool restartMode) { if (restartMode) { // Load restart state Common::File *file = new Common::File(); - file->open(filename, Common::File::kFileReadMode); + file->open(filename); f = file; } else { f = _saveFileMan->openForLoading(filename); -- cgit v1.2.3