aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorBastien Bouclet2017-09-24 06:21:54 +0200
committerGitHub2017-09-24 06:21:54 +0200
commit25d66b2a08f6a1ad09c7ad7dc9db11ad3a4c76cf (patch)
tree9b28c0382e0c7362e2d88e73b8e312f8a8bbbdd8 /engines
parent75026dba8cb3a9870e1e8f35b2625410ff49a131 (diff)
parentbe67f0d8bfb4148e014931cce63b52e84ed95ee6 (diff)
downloadscummvm-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.cpp2
-rw-r--r--engines/dm/eventman.cpp2
-rw-r--r--engines/fullpipe/statesaver.cpp2
-rw-r--r--engines/gnap/menu.cpp2
-rw-r--r--engines/pegasus/ai/ai_area.cpp2
-rw-r--r--engines/scumm/saveload.cpp2
-rw-r--r--engines/sword1/control.cpp2
-rw-r--r--engines/sword25/gfx/screenshot.cpp6
-rw-r--r--engines/sword25/script/luascript.cpp2
-rw-r--r--engines/xeen/saves.cpp25
-rw-r--r--engines/xeen/saves.h9
-rw-r--r--engines/zvision/file/save_manager.cpp4
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);
}