From 0ac3466f7551edd4712c187bd7eadb173eb69726 Mon Sep 17 00:00:00 2001 From: psychon Date: Wed, 4 Feb 2009 15:47:36 +0000 Subject: [PATCH] CBuffer: If the allowed buffer size is lowered, shrink the buffer git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1371 726aef4b-f618-498e-8847-2d620e286838 --- Buffer.cpp | 9 +++++++++ Buffer.h | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Buffer.cpp b/Buffer.cpp index 2d67fbf6..9ea3b43b 100644 --- a/Buffer.cpp +++ b/Buffer.cpp @@ -74,3 +74,12 @@ bool CBuffer::GetNextLine(const CString& sTarget, CString& sRet) { erase(begin()); return true; } + +void CBuffer::SetLineCount(unsigned int u) { + m_uLineCount = u; + + // We may need to shrink the buffer if the allowed size got smaller + while (size() > m_uLineCount) { + erase(begin()); + } +} diff --git a/Buffer.h b/Buffer.h index c73a9073..e790996b 100644 --- a/Buffer.h +++ b/Buffer.h @@ -49,7 +49,7 @@ public: void Clear() { clear(); } // Setters - void SetLineCount(unsigned int u) { m_uLineCount = u; } + void SetLineCount(unsigned int u); // !Setters // Getters