mirror of
https://github.com/libretro/scummvm.git
synced 2025-05-13 17:46:22 +00:00
EVENTRECORDER: Use a dynamic array for buffer in PlaybackFile
It is allocated on the stack.
This commit is contained in:
parent
7e42ae4eec
commit
c9a19011bf
@ -34,7 +34,10 @@
|
|||||||
|
|
||||||
namespace Common {
|
namespace Common {
|
||||||
|
|
||||||
PlaybackFile::PlaybackFile() : _tmpRecordFile(_tmpBuffer, kRecordBuffSize), _tmpPlaybackFile(_tmpBuffer, kRecordBuffSize) {
|
PlaybackFile::PlaybackFile()
|
||||||
|
: _tmpBuffer(kRecordBuffSize)
|
||||||
|
, _tmpRecordFile(_tmpBuffer.data(), kRecordBuffSize)
|
||||||
|
, _tmpPlaybackFile(_tmpBuffer.data(), kRecordBuffSize) {
|
||||||
_readStream = NULL;
|
_readStream = NULL;
|
||||||
_writeStream = NULL;
|
_writeStream = NULL;
|
||||||
_screenshotsFile = NULL;
|
_screenshotsFile = NULL;
|
||||||
@ -44,7 +47,7 @@ PlaybackFile::PlaybackFile() : _tmpRecordFile(_tmpBuffer, kRecordBuffSize), _tmp
|
|||||||
_headerDumped = false;
|
_headerDumped = false;
|
||||||
_recordCount = 0;
|
_recordCount = 0;
|
||||||
_eventsSize = 0;
|
_eventsSize = 0;
|
||||||
memset(_tmpBuffer, 1, kRecordBuffSize);
|
memset(_tmpBuffer.data(), 1, kRecordBuffSize);
|
||||||
|
|
||||||
_playbackParseState = kFileStateCheckFormat;
|
_playbackParseState = kFileStateCheckFormat;
|
||||||
}
|
}
|
||||||
@ -400,7 +403,7 @@ void PlaybackFile::readEvent(RecorderEvent& event) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void PlaybackFile::readEventsToBuffer(uint32 size) {
|
void PlaybackFile::readEventsToBuffer(uint32 size) {
|
||||||
_readStream->read(_tmpBuffer, size);
|
_readStream->read(_tmpBuffer.data(), size);
|
||||||
_tmpPlaybackFile.seek(0);
|
_tmpPlaybackFile.seek(0);
|
||||||
_eventsSize = size;
|
_eventsSize = size;
|
||||||
}
|
}
|
||||||
@ -423,7 +426,7 @@ void PlaybackFile::dumpRecordsToFile() {
|
|||||||
}
|
}
|
||||||
_writeStream->writeUint32LE(kEventTag);
|
_writeStream->writeUint32LE(kEventTag);
|
||||||
_writeStream->writeUint32LE(_tmpRecordFile.pos());
|
_writeStream->writeUint32LE(_tmpRecordFile.pos());
|
||||||
_writeStream->write(_tmpBuffer, _tmpRecordFile.pos());
|
_writeStream->write(_tmpBuffer.data(), _tmpRecordFile.pos());
|
||||||
_tmpRecordFile.seek(0);
|
_tmpRecordFile.seek(0);
|
||||||
_recordCount = 0;
|
_recordCount = 0;
|
||||||
}
|
}
|
||||||
@ -644,8 +647,8 @@ void PlaybackFile::updateHeader() {
|
|||||||
dumpHeaderToFile();
|
dumpHeaderToFile();
|
||||||
uint32 readedSize = 0;
|
uint32 readedSize = 0;
|
||||||
do {
|
do {
|
||||||
readedSize = _readStream->read(_tmpBuffer, kRecordBuffSize);
|
readedSize = _readStream->read(_tmpBuffer.data(), kRecordBuffSize);
|
||||||
_writeStream->write(_tmpBuffer, readedSize);
|
_writeStream->write(_tmpBuffer.data(), readedSize);
|
||||||
} while (readedSize != 0);
|
} while (readedSize != 0);
|
||||||
delete _writeStream;
|
delete _writeStream;
|
||||||
_writeStream = NULL;
|
_writeStream = NULL;
|
||||||
|
@ -139,6 +139,7 @@ public:
|
|||||||
void updateHeader();
|
void updateHeader();
|
||||||
void addSaveFile(const String &fileName, InSaveFile *saveStream);
|
void addSaveFile(const String &fileName, InSaveFile *saveStream);
|
||||||
private:
|
private:
|
||||||
|
Array<byte> _tmpBuffer;
|
||||||
WriteStream *_recordFile;
|
WriteStream *_recordFile;
|
||||||
WriteStream *_writeStream;
|
WriteStream *_writeStream;
|
||||||
WriteStream *_screenshotsFile;
|
WriteStream *_screenshotsFile;
|
||||||
@ -150,7 +151,6 @@ private:
|
|||||||
bool _headerDumped;
|
bool _headerDumped;
|
||||||
int _recordCount;
|
int _recordCount;
|
||||||
uint32 _eventsSize;
|
uint32 _eventsSize;
|
||||||
byte _tmpBuffer[kRecordBuffSize];
|
|
||||||
PlaybackFileHeader _header;
|
PlaybackFileHeader _header;
|
||||||
PlaybackFileState _playbackParseState;
|
PlaybackFileState _playbackParseState;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user