diff options
author | Max Horn | 2009-05-31 17:00:38 +0000 |
---|---|---|
committer | Max Horn | 2009-05-31 17:00:38 +0000 |
commit | e072532458b177c281302957c6eda318914e52c2 (patch) | |
tree | e4cee65571d3fe4311e5ec730e7ee8a3d1da60ea /engines | |
parent | 78a887490357393b420e288a3318d94497e59293 (diff) | |
download | scummvm-rg350-e072532458b177c281302957c6eda318914e52c2.tar.gz scummvm-rg350-e072532458b177c281302957c6eda318914e52c2.tar.bz2 scummvm-rg350-e072532458b177c281302957c6eda318914e52c2.zip |
GOB: Got rid of last traces of strdupcpy and strdupcat
svn-id: r41079
Diffstat (limited to 'engines')
-rw-r--r-- | engines/gob/helper.h | 30 | ||||
-rw-r--r-- | engines/gob/save/saveconverter.cpp | 4 | ||||
-rw-r--r-- | engines/gob/save/saveconverter.h | 12 | ||||
-rw-r--r-- | engines/gob/save/saveconverter_v2.cpp | 2 | ||||
-rw-r--r-- | engines/gob/save/saveconverter_v3.cpp | 2 | ||||
-rw-r--r-- | engines/gob/save/saveconverter_v4.cpp | 2 | ||||
-rw-r--r-- | engines/gob/save/saveconverter_v6.cpp | 2 | ||||
-rw-r--r-- | engines/gob/save/savehandler.cpp | 133 | ||||
-rw-r--r-- | engines/gob/save/savehandler.h | 25 | ||||
-rw-r--r-- | engines/gob/save/saveload_v2.cpp | 8 | ||||
-rw-r--r-- | engines/gob/save/saveload_v3.cpp | 19 | ||||
-rw-r--r-- | engines/gob/save/saveload_v4.cpp | 13 | ||||
-rw-r--r-- | engines/gob/save/saveload_v6.cpp | 8 |
13 files changed, 92 insertions, 168 deletions
diff --git a/engines/gob/helper.h b/engines/gob/helper.h index 5bedf81014..fbb5ae7ec8 100644 --- a/engines/gob/helper.h +++ b/engines/gob/helper.h @@ -35,36 +35,6 @@ inline char *strncpy0(char *dest, const char *src, size_t n) { return dest; } -/** A strdup that new[]s the buffer. */ -inline char *strdupcpy(const char *str) { - if (!str) - return 0; - - size_t len = strlen(str) + 1; - - char *nstr = new char[len]; - - memcpy(nstr, str, len); - - return nstr; -} - -/** A strcat that new[]s the buffer. */ -inline char *strdupcat(const char *str1, const char *str2) { - if (!str1 || !str2) - return 0; - - size_t len1 = strlen(str1); - size_t len2 = strlen(str2); - - char *nstr = new char[len1 + len2 + 1]; - - memcpy(nstr, str1, len1); - memcpy(nstr + len1, str2, len2 + 1); - - return nstr; -} - /** A "smart" reference counting templated class. */ template<typename T> class ReferenceCounter { diff --git a/engines/gob/save/saveconverter.cpp b/engines/gob/save/saveconverter.cpp index 06fb2a53e9..8c6d4ca04f 100644 --- a/engines/gob/save/saveconverter.cpp +++ b/engines/gob/save/saveconverter.cpp @@ -72,7 +72,7 @@ void SaveConverter::displayWarning() const { "save is broken and can't be used anymore. Sorry for the inconvenience"); } -char *SaveConverter::getDescription(const char *fileName) { +char *SaveConverter::getDescription(const Common::String &fileName) { setFileName(fileName); return getDescription(); } @@ -357,7 +357,7 @@ bool SaveConverter::seek(int32 offset, int whence) { SaveConverter_Notes::SaveConverter_Notes(GobEngine *vm, uint32 notesSize, - const char *fileName) : SaveConverter(vm, fileName) { + const Common::String &fileName) : SaveConverter(vm, fileName) { _size = notesSize; } diff --git a/engines/gob/save/saveconverter.h b/engines/gob/save/saveconverter.h index 96708c5543..3ae48e1edc 100644 --- a/engines/gob/save/saveconverter.h +++ b/engines/gob/save/saveconverter.h @@ -56,7 +56,7 @@ public: virtual bool load() = 0; /** Set the name and return the description. */ - char *getDescription(const char *fileName); + char *getDescription(const Common::String &fileName); /** Get the current fileName's description. */ char *getDescription() const; @@ -108,7 +108,7 @@ private: /** A wrapper for old notes saves. */ class SaveConverter_Notes : public SaveConverter { public: - SaveConverter_Notes(GobEngine *vm, uint32 notesSize, const char *fileName = 0); + SaveConverter_Notes(GobEngine *vm, uint32 notesSize, const Common::String &fileName = ""); ~SaveConverter_Notes(); int isOldSave(Common::InSaveFile **save = 0) const; @@ -125,7 +125,7 @@ private: /** A wrapper for old v2-style saves (Gobliins 2, Ween: The Prophecy and Bargon Attack). */ class SaveConverter_v2 : public SaveConverter { public: - SaveConverter_v2(GobEngine *vm, const char *fileName = 0); + SaveConverter_v2(GobEngine *vm, const Common::String &fileName = ""); ~SaveConverter_v2(); int isOldSave(Common::InSaveFile **save = 0) const; @@ -144,7 +144,7 @@ private: /** A wrapper for old v3-style saves (Goblins 3 and Lost in Time). */ class SaveConverter_v3 : public SaveConverter { public: - SaveConverter_v3(GobEngine *vm, const char *fileName = 0); + SaveConverter_v3(GobEngine *vm, const Common::String &fileName = ""); ~SaveConverter_v3(); int isOldSave(Common::InSaveFile **save = 0) const; @@ -166,7 +166,7 @@ private: /** A wrapper for old v4-style saves (Woodruff). */ class SaveConverter_v4 : public SaveConverter { public: - SaveConverter_v4(GobEngine *vm, const char *fileName = 0); + SaveConverter_v4(GobEngine *vm, const Common::String &fileName = ""); ~SaveConverter_v4(); int isOldSave(Common::InSaveFile **save = 0) const; @@ -185,7 +185,7 @@ private: /** A wrapper for old v6-style saves (Urban Runner). */ class SaveConverter_v6 : public SaveConverter { public: - SaveConverter_v6(GobEngine *vm, const char *fileName = 0); + SaveConverter_v6(GobEngine *vm, const Common::String &fileName = ""); ~SaveConverter_v6(); int isOldSave(Common::InSaveFile **save = 0) const; diff --git a/engines/gob/save/saveconverter_v2.cpp b/engines/gob/save/saveconverter_v2.cpp index 96ed949753..64770256e5 100644 --- a/engines/gob/save/saveconverter_v2.cpp +++ b/engines/gob/save/saveconverter_v2.cpp @@ -33,7 +33,7 @@ namespace Gob { -SaveConverter_v2::SaveConverter_v2(GobEngine *vm, const char *fileName) : +SaveConverter_v2::SaveConverter_v2(GobEngine *vm, const Common::String &fileName) : SaveConverter(vm, fileName) { } diff --git a/engines/gob/save/saveconverter_v3.cpp b/engines/gob/save/saveconverter_v3.cpp index d707268d9c..9be980249a 100644 --- a/engines/gob/save/saveconverter_v3.cpp +++ b/engines/gob/save/saveconverter_v3.cpp @@ -33,7 +33,7 @@ namespace Gob { -SaveConverter_v3::SaveConverter_v3(GobEngine *vm, const char *fileName) : +SaveConverter_v3::SaveConverter_v3(GobEngine *vm, const Common::String &fileName) : SaveConverter(vm, fileName) { } diff --git a/engines/gob/save/saveconverter_v4.cpp b/engines/gob/save/saveconverter_v4.cpp index 23273446d1..5096a159e4 100644 --- a/engines/gob/save/saveconverter_v4.cpp +++ b/engines/gob/save/saveconverter_v4.cpp @@ -33,7 +33,7 @@ namespace Gob { -SaveConverter_v4::SaveConverter_v4(GobEngine *vm, const char *fileName) : +SaveConverter_v4::SaveConverter_v4(GobEngine *vm, const Common::String &fileName) : SaveConverter(vm, fileName) { } diff --git a/engines/gob/save/saveconverter_v6.cpp b/engines/gob/save/saveconverter_v6.cpp index 01818e8191..ea2c7d1e06 100644 --- a/engines/gob/save/saveconverter_v6.cpp +++ b/engines/gob/save/saveconverter_v6.cpp @@ -33,7 +33,7 @@ namespace Gob { -SaveConverter_v6::SaveConverter_v6(GobEngine *vm, const char *fileName) : +SaveConverter_v6::SaveConverter_v6(GobEngine *vm, const Common::String &fileName) : SaveConverter(vm, fileName) { } diff --git a/engines/gob/save/savehandler.cpp b/engines/gob/save/savehandler.cpp index 965ddea4b3..74b878f0a1 100644 --- a/engines/gob/save/savehandler.cpp +++ b/engines/gob/save/savehandler.cpp @@ -37,17 +37,12 @@ namespace Gob { -SlotFile::SlotFile(GobEngine *vm, uint32 slotCount, const char *base) : _vm(vm) { - _base = strdupcpy(base); +SlotFile::SlotFile(GobEngine *vm, uint32 slotCount, const Common::String &base) : _vm(vm) { + _base = base; _slotCount = slotCount; } SlotFile::~SlotFile() { - delete[] _base; -} - -const char *SlotFile::getBase() const { - return _base; } uint32 SlotFileIndexed::getSlotMax() const { @@ -56,13 +51,12 @@ uint32 SlotFileIndexed::getSlotMax() const { // Find the last filled save slot and base the save file size calculate on that for (int i = (_slotCount - 1); i >= 0; i--) { - char *slotFile = build(i); + Common::String slotFile = build(i); - if (!slotFile) + if (slotFile.empty()) continue; in = saveMan->openForLoading(slotFile); - delete[] slotFile; if (in) { delete in; @@ -89,9 +83,9 @@ void SlotFileIndexed::buildIndex(byte *buffer, SavePartInfo &info, // Iterate over all files for (uint32 i = 0; i < _slotCount; i++, buffer += descLength) { - char *slotFile = build(i); + Common::String slotFile = build(i); - if (slotFile) { + if (!slotFile.empty()) { char *desc = 0; if (converter && (desc = converter->getDescription(slotFile))) @@ -109,8 +103,6 @@ void SlotFileIndexed::buildIndex(byte *buffer, SavePartInfo &info, } else // No valid slot, fill with 0 memset(buffer, 0, descLength); - - delete[] slotFile; } } @@ -121,85 +113,51 @@ bool SlotFileIndexed::exists(int slot) const { return result; } -bool SlotFileStatic::exists() const { - Common::InSaveFile *in = openRead(); - bool result = (in != 0); - delete in; - return result; -} - Common::InSaveFile *SlotFileIndexed::openRead(int slot) const { - char *name = build(slot); - if (!name) - return 0; - Common::SaveFileManager *saveMan = g_system->getSavefileManager(); - Common::InSaveFile *result = saveMan->openForLoading(name); - delete[] name; - return result; -} - -Common::InSaveFile *SlotFileStatic::openRead() const { - char *name = build(); - if (!name) + Common::String name = build(slot); + if (name.empty()) return 0; Common::SaveFileManager *saveMan = g_system->getSavefileManager(); Common::InSaveFile *result = saveMan->openForLoading(name); - delete[] name; return result; } Common::OutSaveFile *SlotFileIndexed::openWrite(int slot) const { - char *name = build(slot); - if (!name) + Common::String name = build(slot); + if (name.empty()) return 0; Common::SaveFileManager *saveMan = g_system->getSavefileManager(); Common::OutSaveFile *result = saveMan->openForSaving(name); - delete[] name; - return result; -} - -Common::OutSaveFile *SlotFileStatic::openWrite() const { - char *name = build(); - if (!name) - return 0; - Common::SaveFileManager *saveMan = g_system->getSavefileManager(); - Common::OutSaveFile *result = saveMan->openForSaving(name); - delete[] name; return result; } SlotFileIndexed::SlotFileIndexed(GobEngine *vm, uint32 slotCount, - const char *base, const char *extStub) : SlotFile(vm, slotCount, base) { + const Common::String &base, const Common::String &extStub) : SlotFile(vm, slotCount, base) { - _ext = strdupcpy(extStub); + _ext = extStub; } SlotFileIndexed::~SlotFileIndexed() { - delete[] _ext; } -char *SlotFileIndexed::build(int slot) const { +Common::String SlotFileIndexed::build(int slot) const { if ((slot < 0) || (((uint32) slot) >= _slotCount)) - return 0; - - size_t len = strlen(_base) + strlen(_ext) + 4; + return Common::String(); - char *slotFile = new char[len]; + char buf[4]; + snprintf(buf, sizeof(buf), "%02d", slot); - snprintf(slotFile, len, "%s.%s%02d", _base, _ext, slot); - - return slotFile; + return _base + "." + _ext + buf; } -SlotFileStatic::SlotFileStatic(GobEngine *vm, const char *base, - const char *ext) : SlotFile(vm, 1, base) { +SlotFileStatic::SlotFileStatic(GobEngine *vm, const Common::String &base, + const Common::String &ext) : SlotFile(vm, 1, base) { - _ext = strdupcat(".", ext); + _ext = "." + ext; } SlotFileStatic::~SlotFileStatic() { - delete[] _ext; } int SlotFileStatic::getSlot(int32 offset) const { @@ -210,8 +168,33 @@ int SlotFileStatic::getSlotRemainder(int32 offset) const { return -1; } -char *SlotFileStatic::build() const { - return strdupcat(_base, _ext); +Common::String SlotFileStatic::build() const { + return _base + _ext; +} + +bool SlotFileStatic::exists() const { + Common::InSaveFile *in = openRead(); + bool result = (in != 0); + delete in; + return result; +} + +Common::InSaveFile *SlotFileStatic::openRead() const { + Common::String name = build(); + if (name.empty()) + return 0; + Common::SaveFileManager *saveMan = g_system->getSavefileManager(); + Common::InSaveFile *result = saveMan->openForLoading(name); + return result; +} + +Common::OutSaveFile *SlotFileStatic::openWrite() const { + Common::String name = build(); + if (name.empty()) + return 0; + Common::SaveFileManager *saveMan = g_system->getSavefileManager(); + Common::OutSaveFile *result = saveMan->openForSaving(name); + return result; } @@ -357,14 +340,14 @@ bool TempSpriteHandler::usesPalette(int32 size) { } -NotesHandler::File::File(GobEngine *vm, const char *base) : +NotesHandler::File::File(GobEngine *vm, const Common::String &base) : SlotFileStatic(vm, base, "blo") { } NotesHandler::File::~File() { } -NotesHandler::NotesHandler(uint32 notesSize, GobEngine *vm, const char *target) : +NotesHandler::NotesHandler(uint32 notesSize, GobEngine *vm, const Common::String &target) : SaveHandler(vm) { _notesSize = notesSize; @@ -380,9 +363,9 @@ NotesHandler::~NotesHandler() { } int32 NotesHandler::getSize() { - char *fileName = _file->build(); + Common::String fileName = _file->build(); - if (!fileName) + if (fileName.empty()) return -1; Common::InSaveFile *saveFile; @@ -400,8 +383,6 @@ int32 NotesHandler::getSize() { SaveReader reader(1, 0, fileName); SaveHeader header; - delete[] fileName; - if (!reader.load()) return -1; @@ -416,9 +397,9 @@ bool NotesHandler::load(int16 dataVar, int32 size, int32 offset) { if ((dataVar < 0) || (size < 0) || (offset < 0)) return false; - char *fileName = _file->build(); + Common::String fileName = _file->build(); - if (!fileName) + if (fileName.empty()) return false; SaveReader *reader; @@ -437,8 +418,6 @@ bool NotesHandler::load(int16 dataVar, int32 size, int32 offset) { SavePartVars vars(_vm, _notesSize); - delete[] fileName; - if (!reader->load()) { delete reader; return false; @@ -462,16 +441,14 @@ bool NotesHandler::save(int16 dataVar, int32 size, int32 offset) { if ((dataVar < 0) || (size < 0) || (offset < 0)) return false; - char *fileName = _file->build(); + Common::String fileName = _file->build(); - if (!fileName) + if (fileName.empty()) return false; SaveWriter writer(1, 0, fileName); SavePartVars vars(_vm, _notesSize); - delete[] fileName; - if (!vars.readFrom(dataVar, offset, size)) return false; diff --git a/engines/gob/save/savehandler.h b/engines/gob/save/savehandler.h index 7ddb4c2711..cb984f7abb 100644 --- a/engines/gob/save/savehandler.h +++ b/engines/gob/save/savehandler.h @@ -45,12 +45,9 @@ public: * @param slotCount Number of slots. * @param base The file's base string. */ - SlotFile(GobEngine *vm, uint32 slotCount, const char *base); + SlotFile(GobEngine *vm, uint32 slotCount, const Common::String &base); virtual ~SlotFile(); - /** Returns the base string. */ - virtual const char *getBase() const; - /** Calculates which slot to use. */ virtual int getSlot(int32 offset) const = 0; /** Calculates the slot remainder, for error checking. */ @@ -58,7 +55,7 @@ public: protected: GobEngine *_vm; - char *_base; + Common::String _base; uint32 _slotCount; }; @@ -66,12 +63,12 @@ protected: /** An indexed slot file ("foobar.s00", "foobar.s01", ...). */ class SlotFileIndexed : public SlotFile { public: - SlotFileIndexed(GobEngine *vm, uint32 slotCount, const char *base, - const char *extStub); + SlotFileIndexed(GobEngine *vm, uint32 slotCount, const Common::String &base, + const Common::String &extStub); ~SlotFileIndexed(); /** Build the save file name. */ - char *build(int slot) const; + Common::String build(int slot) const; /** Returns the highest filled slot number. */ virtual uint32 getSlotMax() const; @@ -88,27 +85,27 @@ public: virtual Common::OutSaveFile *openWrite(int slot) const; protected: - char *_ext; + Common::String _ext; }; /** A static slot file ("foo.bar"). */ class SlotFileStatic : public SlotFile { public: - SlotFileStatic(GobEngine *vm, const char *base, const char *ext); + SlotFileStatic(GobEngine *vm, const Common::String &base, const Common::String &ext); ~SlotFileStatic(); int getSlot(int32 offset) const; int getSlotRemainder(int32 offset) const; /** Build the save file name. */ - char *build() const; + Common::String build() const; virtual bool exists() const; virtual Common::InSaveFile *openRead() const; virtual Common::OutSaveFile *openWrite() const; protected: - char *_ext; + Common::String _ext; }; /** A handler for a specific save file. */ @@ -158,7 +155,7 @@ protected: /** A handler for notes. */ class NotesHandler : public SaveHandler { public: - NotesHandler(uint32 notesSize, GobEngine *vm, const char *target); + NotesHandler(uint32 notesSize, GobEngine *vm, const Common::String &target); ~NotesHandler(); int32 getSize(); @@ -168,7 +165,7 @@ public: private: class File : public SlotFileStatic { public: - File(GobEngine *vm, const char *base); + File(GobEngine *vm, const Common::String &base); ~File(); }; diff --git a/engines/gob/save/saveload_v2.cpp b/engines/gob/save/saveload_v2.cpp index 0bbefe28db..496b45ac41 100644 --- a/engines/gob/save/saveload_v2.cpp +++ b/engines/gob/save/saveload_v2.cpp @@ -124,7 +124,7 @@ bool SaveLoad_v2::GameHandler::load(int16 dataVar, int32 size, int32 offset) { return false; } - char *slotFile = _slotFile->build(slot); + Common::String slotFile = _slotFile->build(slot); SaveReader *reader = 0; SaveConverter_v2 converter(_vm, slotFile); @@ -149,8 +149,6 @@ bool SaveLoad_v2::GameHandler::load(int16 dataVar, int32 size, int32 offset) { return false; } - delete[] slotFile; - if (!reader->readPart(0, &info)) { delete reader; return false; @@ -220,15 +218,13 @@ bool SaveLoad_v2::GameHandler::save(int16 dataVar, int32 size, int32 offset) { _hasIndex = false; - char *slotFile = _slotFile->build(slot); + Common::String slotFile = _slotFile->build(slot); SaveWriter writer(2, slot, slotFile); SavePartInfo info(kSlotNameLength, (uint32) _vm->getGameType(), 0, _vm->getEndianness(), varSize); SavePartVars vars(_vm, varSize); - delete[] slotFile; - // Write the description info.setDesc(_index + (slot * kSlotNameLength), kSlotNameLength); // Write all variables diff --git a/engines/gob/save/saveload_v3.cpp b/engines/gob/save/saveload_v3.cpp index 665e925b00..5686838230 100644 --- a/engines/gob/save/saveload_v3.cpp +++ b/engines/gob/save/saveload_v3.cpp @@ -302,9 +302,9 @@ bool SaveLoad_v3::GameHandler::createReader(int slot) { return (_reader != 0); if (!_reader || (_reader->getSlot() != ((uint32) slot))) { - char *slotFile = _slotFile->build(slot); + Common::String slotFile = _slotFile->build(slot); - if (!slotFile) + if (slotFile.empty()) return false; delete _reader; @@ -313,7 +313,6 @@ bool SaveLoad_v3::GameHandler::createReader(int slot) { if (converter.isOldSave()) { // Old save, plug the converter in if (!converter.load()) { - delete[] slotFile; return false; } @@ -322,8 +321,6 @@ bool SaveLoad_v3::GameHandler::createReader(int slot) { } else _reader = new SaveReader(_usesScreenshots ? 3 : 2, slot, slotFile); - delete[] slotFile; - if (!_reader->load()) { delete _reader; _reader = 0; @@ -340,15 +337,13 @@ bool SaveLoad_v3::GameHandler::createWriter(int slot) { return (_writer != 0); if (!_writer || (_writer->getSlot() != ((uint32) slot))) { - char *slotFile = _slotFile->build(slot); + Common::String slotFile = _slotFile->build(slot); - if (!slotFile) + if (slotFile.empty()) return false; delete _writer; _writer = new SaveWriter(_usesScreenshots ? 3 : 2, slot, slotFile); - - delete[] slotFile; } return true; @@ -378,15 +373,13 @@ void SaveLoad_v3::ScreenshotHandler::File::buildIndex(byte *buffer) const { Common::InSaveFile *in; for (uint32 i = 0; i < _slotCount; i++, buffer++) { - char *slotFile = build(i); + Common::String slotFile = build(i); - if (slotFile && ((in = saveMan->openForLoading(slotFile)))) { + if (!slotFile.empty() && ((in = saveMan->openForLoading(slotFile)))) { delete in; *buffer = 1; } else *buffer = 0; - - delete[] slotFile; } } diff --git a/engines/gob/save/saveload_v4.cpp b/engines/gob/save/saveload_v4.cpp index e73b745aae..d626c71ad4 100644 --- a/engines/gob/save/saveload_v4.cpp +++ b/engines/gob/save/saveload_v4.cpp @@ -317,9 +317,9 @@ bool SaveLoad_v4::GameHandler::createReader(int slot) { return (_reader != 0); if (!_reader || (_reader->getSlot() != ((uint32) slot))) { - char *slotFile = _slotFile->build(slot); + Common::String slotFile = _slotFile->build(slot); - if (!slotFile) + if (slotFile.empty()) return false; delete _reader; @@ -328,7 +328,6 @@ bool SaveLoad_v4::GameHandler::createReader(int slot) { if (converter.isOldSave()) { // Old save, plug the converter in if (!converter.load()) { - delete[] slotFile; return false; } @@ -337,8 +336,6 @@ bool SaveLoad_v4::GameHandler::createReader(int slot) { } else _reader = new SaveReader(3, slot, slotFile); - delete[] slotFile; - if (!_reader->load()) { delete _reader; _reader = 0; @@ -355,15 +352,13 @@ bool SaveLoad_v4::GameHandler::createWriter(int slot) { return (_writer != 0); if (!_writer || (_writer->getSlot() != ((uint32) slot))) { - char *slotFile = _slotFile->build(slot); + Common::String slotFile = _slotFile->build(slot); - if (!slotFile) + if (slotFile.empty()) return false; delete _writer; _writer = new SaveWriter(3, slot, slotFile); - - delete[] slotFile; } return true; diff --git a/engines/gob/save/saveload_v6.cpp b/engines/gob/save/saveload_v6.cpp index 455137aa6a..ac2a626521 100644 --- a/engines/gob/save/saveload_v6.cpp +++ b/engines/gob/save/saveload_v6.cpp @@ -134,7 +134,7 @@ bool SaveLoad_v6::GameHandler::load(int16 dataVar, int32 size, int32 offset) { return false; } - char *slotFile = _slotFile->build(slot); + Common::String slotFile = _slotFile->build(slot); SaveReader *reader = 0; SaveConverter_v6 converter(_vm, slotFile); @@ -159,8 +159,6 @@ bool SaveLoad_v6::GameHandler::load(int16 dataVar, int32 size, int32 offset) { return false; } - delete[] slotFile; - if (!reader->readPart(0, &info)) { delete reader; return false; @@ -233,15 +231,13 @@ bool SaveLoad_v6::GameHandler::save(int16 dataVar, int32 size, int32 offset) { return false; } - char *slotFile = _slotFile->build(slot); + Common::String slotFile = _slotFile->build(slot); SaveWriter writer(2, slot, slotFile); SavePartInfo info(kSlotNameLength, (uint32) _vm->getGameType(), 0, _vm->getEndianness(), varSize); SavePartVars vars(_vm, varSize); - delete[] slotFile; - // Write the description info.setDesc(_index + (slot * kSlotNameLength), kSlotNameLength); // Write all variables |