[Scummvm-git-logs] scummvm master -> c9a19011bf2bd94dd9e16dd66c548d2510a2b697

mgerhardy martin.gerhardy at gmail.com
Thu Jul 8 08:59:12 UTC 2021


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
c9a19011bf EVENTRECORDER: Use a dynamic array for buffer in PlaybackFile


Commit: c9a19011bf2bd94dd9e16dd66c548d2510a2b697
    https://github.com/scummvm/scummvm/commit/c9a19011bf2bd94dd9e16dd66c548d2510a2b697
Author: Orgad Shaneh (orgads at gmail.com)
Date: 2021-07-08T10:59:09+02:00

Commit Message:
EVENTRECORDER: Use a dynamic array for buffer in PlaybackFile

It is allocated on the stack.

Changed paths:
    common/recorderfile.cpp
    common/recorderfile.h


diff --git a/common/recorderfile.cpp b/common/recorderfile.cpp
index 783c2b4892..5d6c38d6dd 100644
--- a/common/recorderfile.cpp
+++ b/common/recorderfile.cpp
@@ -34,7 +34,10 @@
 
 namespace Common {
 
-PlaybackFile::PlaybackFile() : _tmpRecordFile(_tmpBuffer, kRecordBuffSize), _tmpPlaybackFile(_tmpBuffer, kRecordBuffSize) {
+PlaybackFile::PlaybackFile()
+	: _tmpBuffer(kRecordBuffSize)
+	, _tmpRecordFile(_tmpBuffer.data(), kRecordBuffSize)
+	, _tmpPlaybackFile(_tmpBuffer.data(), kRecordBuffSize) {
 	_readStream = NULL;
 	_writeStream = NULL;
 	_screenshotsFile = NULL;
@@ -44,7 +47,7 @@ PlaybackFile::PlaybackFile() : _tmpRecordFile(_tmpBuffer, kRecordBuffSize), _tmp
 	_headerDumped = false;
 	_recordCount = 0;
 	_eventsSize = 0;
-	memset(_tmpBuffer, 1, kRecordBuffSize);
+	memset(_tmpBuffer.data(), 1, kRecordBuffSize);
 
 	_playbackParseState = kFileStateCheckFormat;
 }
@@ -400,7 +403,7 @@ void PlaybackFile::readEvent(RecorderEvent& event) {
 }
 
 void PlaybackFile::readEventsToBuffer(uint32 size) {
-	_readStream->read(_tmpBuffer, size);
+	_readStream->read(_tmpBuffer.data(), size);
 	_tmpPlaybackFile.seek(0);
 	_eventsSize = size;
 }
@@ -423,7 +426,7 @@ void PlaybackFile::dumpRecordsToFile() {
 	}
 	_writeStream->writeUint32LE(kEventTag);
 	_writeStream->writeUint32LE(_tmpRecordFile.pos());
-	_writeStream->write(_tmpBuffer, _tmpRecordFile.pos());
+	_writeStream->write(_tmpBuffer.data(), _tmpRecordFile.pos());
 	_tmpRecordFile.seek(0);
 	_recordCount = 0;
 }
@@ -644,8 +647,8 @@ void PlaybackFile::updateHeader() {
 	dumpHeaderToFile();
 	uint32 readedSize = 0;
 	do {
-		readedSize = _readStream->read(_tmpBuffer, kRecordBuffSize);
-		_writeStream->write(_tmpBuffer, readedSize);
+		readedSize = _readStream->read(_tmpBuffer.data(), kRecordBuffSize);
+		_writeStream->write(_tmpBuffer.data(), readedSize);
 	} while (readedSize != 0);
 	delete _writeStream;
 	_writeStream = NULL;
diff --git a/common/recorderfile.h b/common/recorderfile.h
index b1001628b8..0396dbd68f 100644
--- a/common/recorderfile.h
+++ b/common/recorderfile.h
@@ -139,6 +139,7 @@ public:
 	void updateHeader();
 	void addSaveFile(const String &fileName, InSaveFile *saveStream);
 private:
+	Array<byte> _tmpBuffer;
 	WriteStream *_recordFile;
 	WriteStream *_writeStream;
 	WriteStream *_screenshotsFile;
@@ -150,7 +151,6 @@ private:
 	bool _headerDumped;
 	int _recordCount;
 	uint32 _eventsSize;
-	byte _tmpBuffer[kRecordBuffSize];
 	PlaybackFileHeader _header;
 	PlaybackFileState _playbackParseState;
 




More information about the Scummvm-git-logs mailing list