From 412729e53631c15b34d6c8084241cb61b634a60d Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sat, 5 Apr 2025 12:02:09 -0400 Subject: [PATCH] MemLogger improvements --- BeefySysLib/util/MemLogger.cpp | 13 +++++++++---- BeefySysLib/util/MemLogger.h | 1 + 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/BeefySysLib/util/MemLogger.cpp b/BeefySysLib/util/MemLogger.cpp index 29af8db7..b1afee85 100644 --- a/BeefySysLib/util/MemLogger.cpp +++ b/BeefySysLib/util/MemLogger.cpp @@ -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; diff --git a/BeefySysLib/util/MemLogger.h b/BeefySysLib/util/MemLogger.h index bc505c31..f1148e63 100644 --- a/BeefySysLib/util/MemLogger.h +++ b/BeefySysLib/util/MemLogger.h @@ -11,6 +11,7 @@ public: void* mMemBuffer; int mBufferSize; int mTotalWriteSize; + bool mNoOverflow; public: MemLogger();