diff options
author | Matthew Hoops | 2009-09-03 16:15:10 +0000 |
---|---|---|
committer | Matthew Hoops | 2009-09-03 16:15:10 +0000 |
commit | 05035fd8c34443276d885eac58f9444579d71326 (patch) | |
tree | cda4d7509e7d61ce371ab8c70b19fb282c085880 | |
parent | 3d94d1fba9c2c285da5d876d0c6d28aec799e032 (diff) | |
download | scummvm-rg350-05035fd8c34443276d885eac58f9444579d71326.tar.gz scummvm-rg350-05035fd8c34443276d885eac58f9444579d71326.tar.bz2 scummvm-rg350-05035fd8c34443276d885eac58f9444579d71326.zip |
Fix a new/free mismatch when creating a MemoryReadStream from a MemoryWriteStreamDynamic by changing MemoryWriteStreamDynamic to use malloc/free instead of new/delete[]. This could have affected ScummEngine_v4::prepareSavegame().
svn-id: r43918
-rw-r--r-- | common/stream.h | 6 | ||||
-rw-r--r-- | engines/m4/midi.cpp | 11 |
2 files changed, 11 insertions, 6 deletions
diff --git a/common/stream.h b/common/stream.h index 86e8e71134..6b127e6086 100644 --- a/common/stream.h +++ b/common/stream.h @@ -649,13 +649,13 @@ private: byte *old_data = _data; _capacity = new_len + 32; - _data = new byte[_capacity]; + _data = (byte *)malloc(_capacity); _ptr = _data + _pos; if (old_data) { // Copy old data memcpy(_data, old_data, _size); - delete[] old_data; + free(old_data); } _size = new_len; @@ -665,7 +665,7 @@ public: ~MemoryWriteStreamDynamic() { if (_disposeMemory) - delete[] _data; + free(_data); } uint32 write(const void *dataPtr, uint32 dataSize) { diff --git a/engines/m4/midi.cpp b/engines/m4/midi.cpp index 3f1da2a369..201d7d3f5f 100644 --- a/engines/m4/midi.cpp +++ b/engines/m4/midi.cpp @@ -47,7 +47,9 @@ MidiPlayer::~MidiPlayer() { stopMusic(); close(); delete _parser; - delete _midiData; + + if (_midiData) + free(_midiData); } void MidiPlayer::setVolume(int volume) { @@ -181,8 +183,11 @@ void MidiPlayer::stopMusic() { if (_parser) { _parser->unloadMusic(); } - delete[] _midiData; - _midiData = NULL; + + if (_midiData) { + free(_midiData); + _midiData = NULL; + } } // This function will convert HMP music into type 1 SMF, which our SMF parser |