1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 03:28:20 +02:00

MemLogger improvements

This commit is contained in:
Brian Fiete 2025-04-05 12:02:09 -04:00
parent 40aa9e9a8b
commit 412729e536
2 changed files with 10 additions and 4 deletions

View file

@ -16,6 +16,7 @@ MemLogger::MemLogger()
mMemBuffer = NULL;
mBufferSize = 0;
mTotalWriteSize = 0;
mNoOverflow = false;
}
MemLogger::~MemLogger()
@ -30,12 +31,16 @@ void MemLogger::Write(const void* ptr, int size)
{
if (mMemBuffer == NULL)
return;
if (size == 0)
return;
int dataSize = mBufferSize - sizeof(MemLogger_Header);
void* dataPtr = (uint8*)mMemBuffer + sizeof(MemLogger_Header);
if (mNoOverflow)
size = BF_MIN(size, dataSize - mTotalWriteSize - 1);
if (size <= 0)
return;
MemLogger_Header* header = (MemLogger_Header*)mMemBuffer;
bool wasWrapped = header->mHead < header->mTail;
@ -49,7 +54,7 @@ void MemLogger::Write(const void* ptr, int size)
header->mHead -= dataSize;
if (size > 0)
{
{
int writeSize2 = BF_MIN(size, dataSize - header->mHead);
memcpy((char*)dataPtr + header->mHead, (char*)ptr + writeSize, writeSize2);
header->mHead += writeSize2;

View file

@ -11,6 +11,7 @@ public:
void* mMemBuffer;
int mBufferSize;
int mTotalWriteSize;
bool mNoOverflow;
public:
MemLogger();