diff options
author | Bastien Bouclet | 2017-09-24 06:21:54 +0200 |
---|---|---|
committer | GitHub | 2017-09-24 06:21:54 +0200 |
commit | 25d66b2a08f6a1ad09c7ad7dc9db11ad3a4c76cf (patch) | |
tree | 9b28c0382e0c7362e2d88e73b8e312f8a8bbbdd8 /engines | |
parent | 75026dba8cb3a9870e1e8f35b2625410ff49a131 (diff) | |
parent | be67f0d8bfb4148e014931cce63b52e84ed95ee6 (diff) | |
download | scummvm-rg350-25d66b2a08f6a1ad09c7ad7dc9db11ad3a4c76cf.tar.gz scummvm-rg350-25d66b2a08f6a1ad09c7ad7dc9db11ad3a4c76cf.tar.bz2 scummvm-rg350-25d66b2a08f6a1ad09c7ad7dc9db11ad3a4c76cf.zip |
Merge pull request #1027 from bgK/memstream-default-arg
COMMON: Remove the DisposeAfterUse default value from dynamic write memory streams constructors
Diffstat (limited to 'engines')
-rw-r--r-- | engines/agi/sound_midi.cpp | 2 | ||||
-rw-r--r-- | engines/dm/eventman.cpp | 2 | ||||
-rw-r--r-- | engines/fullpipe/statesaver.cpp | 2 | ||||
-rw-r--r-- | engines/gnap/menu.cpp | 2 | ||||
-rw-r--r-- | engines/pegasus/ai/ai_area.cpp | 2 | ||||
-rw-r--r-- | engines/scumm/saveload.cpp | 2 | ||||
-rw-r--r-- | engines/sword1/control.cpp | 2 | ||||
-rw-r--r-- | engines/sword25/gfx/screenshot.cpp | 6 | ||||
-rw-r--r-- | engines/sword25/script/luascript.cpp | 2 | ||||
-rw-r--r-- | engines/xeen/saves.cpp | 25 | ||||
-rw-r--r-- | engines/xeen/saves.h | 9 | ||||
-rw-r--r-- | engines/zvision/file/save_manager.cpp | 4 |
12 files changed, 39 insertions, 21 deletions
diff --git a/engines/agi/sound_midi.cpp b/engines/agi/sound_midi.cpp index 6998df6862..97dcc0d98b 100644 --- a/engines/agi/sound_midi.cpp +++ b/engines/agi/sound_midi.cpp @@ -169,7 +169,7 @@ static uint32 convertSND2MIDI(byte *snddata, byte **data) { int n; double ll; - Common::MemoryWriteStreamDynamic st; + Common::MemoryWriteStreamDynamic st(DisposeAfterUse::NO); ll = log10(pow(2.0, 1.0 / 12.0)); diff --git a/engines/dm/eventman.cpp b/engines/dm/eventman.cpp index 622a7d5e1f..3859fc90b2 100644 --- a/engines/dm/eventman.cpp +++ b/engines/dm/eventman.cpp @@ -782,7 +782,7 @@ void EventManager::processCommandQueue() { delete _vm->_saveThumbnail; _vm->_saveThumbnail = nullptr; } else if (!_vm->_saveThumbnail) { - _vm->_saveThumbnail = new Common::MemoryWriteStreamDynamic(); + _vm->_saveThumbnail = new Common::MemoryWriteStreamDynamic(DisposeAfterUse::YES); Graphics::saveThumbnail(*_vm->_saveThumbnail); } diff --git a/engines/fullpipe/statesaver.cpp b/engines/fullpipe/statesaver.cpp index 7fb56f0479..5eb08fe213 100644 --- a/engines/fullpipe/statesaver.cpp +++ b/engines/fullpipe/statesaver.cpp @@ -55,7 +55,7 @@ bool GameLoader::writeSavegame(Scene *sc, const char *fname) { header.updateCounter = _updateCounter; header.unkField = 1; - Common::MemoryWriteStreamDynamic stream; + Common::MemoryWriteStreamDynamic stream(DisposeAfterUse::YES); MfcArchive *archive = new MfcArchive(&stream); diff --git a/engines/gnap/menu.cpp b/engines/gnap/menu.cpp index 2bfe7300df..9606273b4c 100644 --- a/engines/gnap/menu.cpp +++ b/engines/gnap/menu.cpp @@ -211,7 +211,7 @@ void GnapEngine::runMenu() { _menuDone = false; delete _tempThumbnail; - _tempThumbnail = new Common::MemoryWriteStreamDynamic; + _tempThumbnail = new Common::MemoryWriteStreamDynamic(DisposeAfterUse::YES); Graphics::saveThumbnail(*_tempThumbnail); createMenuSprite(); diff --git a/engines/pegasus/ai/ai_area.cpp b/engines/pegasus/ai/ai_area.cpp index c078d5e80e..58698e6c77 100644 --- a/engines/pegasus/ai/ai_area.cpp +++ b/engines/pegasus/ai/ai_area.cpp @@ -78,7 +78,7 @@ void AIArea::saveAIState() { delete vm->_aiSaveStream; - Common::MemoryWriteStreamDynamic out; + Common::MemoryWriteStreamDynamic out(DisposeAfterUse::NO); writeAIRules(&out); vm->_aiSaveStream = new Common::MemoryReadStream(out.getData(), out.size(), DisposeAfterUse::YES); diff --git a/engines/scumm/saveload.cpp b/engines/scumm/saveload.cpp index 0ab36d1a96..06d564648b 100644 --- a/engines/scumm/saveload.cpp +++ b/engines/scumm/saveload.cpp @@ -228,7 +228,7 @@ void ScummEngine_v4::prepareSavegame() { _savePreparedSavegame = NULL; // store headerless savegame in a compressed memory stream - memStream = new Common::MemoryWriteStreamDynamic(); + memStream = new Common::MemoryWriteStreamDynamic(DisposeAfterUse::NO); writeStream = Common::wrapCompressedWriteStream(memStream); if (saveState(writeStream, false)) { // we have to finalize the compression-stream first, otherwise the internal diff --git a/engines/sword1/control.cpp b/engines/sword1/control.cpp index fbc3f6af4a..0c53430ba3 100644 --- a/engines/sword1/control.cpp +++ b/engines/sword1/control.cpp @@ -303,7 +303,7 @@ static int volToBalance(int volL, int volR) { uint8 Control::runPanel() { // Make a thumbnail of the screen before displaying the menu in case we want to save // the game from the menu. - _tempThumbnail = new Common::MemoryWriteStreamDynamic; + _tempThumbnail = new Common::MemoryWriteStreamDynamic(DisposeAfterUse::YES); Graphics::saveThumbnail(*_tempThumbnail); _panelShown = true; diff --git a/engines/sword25/gfx/screenshot.cpp b/engines/sword25/gfx/screenshot.cpp index eeaece97f2..c86a2fe1d5 100644 --- a/engines/sword25/gfx/screenshot.cpp +++ b/engines/sword25/gfx/screenshot.cpp @@ -113,11 +113,11 @@ Common::SeekableReadStream *Screenshot::createThumbnail(Graphics::Surface *data) } // Create a PNG representation of the thumbnail data - Common::MemoryWriteStreamDynamic *stream = new Common::MemoryWriteStreamDynamic(); - saveToFile(&thumbnail, stream); + Common::MemoryWriteStreamDynamic stream(DisposeAfterUse::NO); + saveToFile(&thumbnail, &stream); // Output a MemoryReadStream that encompasses the written data - Common::SeekableReadStream *result = new Common::MemoryReadStream(stream->getData(), stream->size(), + Common::SeekableReadStream *result = new Common::MemoryReadStream(stream.getData(), stream.size(), DisposeAfterUse::YES); return result; } diff --git a/engines/sword25/script/luascript.cpp b/engines/sword25/script/luascript.cpp index 3aca6676ac..1a83fc9c82 100644 --- a/engines/sword25/script/luascript.cpp +++ b/engines/sword25/script/luascript.cpp @@ -395,7 +395,7 @@ bool LuaScriptEngine::persist(OutputPersistenceBlock &writer) { lua_getglobal(_state, "_G"); // Lua persists and stores the data in a WriteStream - Common::MemoryWriteStreamDynamic writeStream; + Common::MemoryWriteStreamDynamic writeStream(DisposeAfterUse::YES); Lua::persistLua(_state, &writeStream); // Persistenzdaten in den Writer schreiben. diff --git a/engines/xeen/saves.cpp b/engines/xeen/saves.cpp index 4df4b3727c..f9a26b1d6b 100644 --- a/engines/xeen/saves.cpp +++ b/engines/xeen/saves.cpp @@ -30,17 +30,27 @@ namespace Xeen { OutFile::OutFile(XeenEngine *vm, const Common::String filename) : - _vm(vm), _filename(filename) { + _vm(vm), + _filename(filename), + _backingStream(DisposeAfterUse::YES) { +} + +uint32 OutFile::write(const void *dataPtr, uint32 dataSize) { + return _backingStream.write(dataPtr, dataSize); +} + +int32 OutFile::pos() const { + return _backingStream.pos(); } void OutFile::finalize() { uint16 id = BaseCCArchive::convertNameToId(_filename); if (!_vm->_saves->_newData.contains(id)) - _vm->_saves->_newData[id] = Common::MemoryWriteStreamDynamic(DisposeAfterUse::YES); + _vm->_saves->_newData[id] = new Common::MemoryWriteStreamDynamic(DisposeAfterUse::YES); - Common::MemoryWriteStreamDynamic &out = _vm->_saves->_newData[id]; - out.write(getData(), size()); + Common::MemoryWriteStreamDynamic *out = _vm->_saves->_newData[id]; + out->write(_backingStream.getData(), _backingStream.size()); } /*------------------------------------------------------------------------*/ @@ -54,6 +64,9 @@ SavesManager::SavesManager(XeenEngine *vm, Party &party) : } SavesManager::~SavesManager() { + for (Common::HashMap<uint16, Common::MemoryWriteStreamDynamic *>::iterator it = _newData.begin(); it != _newData.end(); it++) { + delete (*it)._value; + } delete[] _data; } @@ -86,8 +99,8 @@ Common::SeekableReadStream *SavesManager::createReadStreamForMember(const Common // save manager, then return that new resource uint16 id = BaseCCArchive::convertNameToId(name); if (_newData.contains(id)) { - Common::MemoryWriteStreamDynamic stream = _newData[id]; - return new Common::MemoryReadStream(stream.getData(), stream.size()); + Common::MemoryWriteStreamDynamic *stream = _newData[id]; + return new Common::MemoryReadStream(stream->getData(), stream->size()); } // Retrieve the resource from the loaded savefile diff --git a/engines/xeen/saves.h b/engines/xeen/saves.h index 2571c46600..9c161c838c 100644 --- a/engines/xeen/saves.h +++ b/engines/xeen/saves.h @@ -44,14 +44,19 @@ struct XeenSavegameHeader { class XeenEngine; class SavesManager; -class OutFile : public Common::MemoryWriteStreamDynamic { +class OutFile : public Common::WriteStream { private: XeenEngine *_vm; Common::String _filename; + Common::MemoryWriteStreamDynamic _backingStream; public: OutFile(XeenEngine *vm, const Common::String filename); void finalize(); + + uint32 write(const void *dataPtr, uint32 dataSize) override; + + int32 pos() const override; }; class SavesManager: public BaseCCArchive { @@ -60,7 +65,7 @@ private: XeenEngine *_vm; Party &_party; byte *_data; - Common::HashMap<uint16, Common::MemoryWriteStreamDynamic > _newData; + Common::HashMap<uint16, Common::MemoryWriteStreamDynamic *> _newData; void load(Common::SeekableReadStream *stream); public: diff --git a/engines/zvision/file/save_manager.cpp b/engines/zvision/file/save_manager.cpp index 8a78e988b3..4259937a3b 100644 --- a/engines/zvision/file/save_manager.cpp +++ b/engines/zvision/file/save_manager.cpp @@ -273,11 +273,11 @@ Common::SeekableReadStream *SaveManager::getSlotFile(uint slot) { void SaveManager::prepareSaveBuffer() { delete _tempThumbnail; - _tempThumbnail = new Common::MemoryWriteStreamDynamic; + _tempThumbnail = new Common::MemoryWriteStreamDynamic(DisposeAfterUse::YES); Graphics::saveThumbnail(*_tempThumbnail); delete _tempSave; - _tempSave = new Common::MemoryWriteStreamDynamic; + _tempSave = new Common::MemoryWriteStreamDynamic(DisposeAfterUse::YES); _engine->getScriptManager()->serialize(_tempSave); } |