From ea453ec4c675b23030149ad9231cd2946a45e5bd Mon Sep 17 00:00:00 2001 From: weidai Date: Thu, 8 Apr 2004 01:31:06 +0000 Subject: [PATCH] fix extraneous FinalizeLazyPut in NetworkSink::Put2 in case of exceptions --- network.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/network.cpp b/network.cpp index ab495da9..53284a60 100644 --- a/network.cpp +++ b/network.cpp @@ -195,7 +195,7 @@ unsigned int NetworkSink::Put2(const byte *inString, unsigned int length, int me inString += m_skipBytes; length -= m_skipBytes; } - LazyPutter lp(m_buffer, inString, length); + m_buffer.LazyPut(inString, length); if (!blocking || m_buffer.CurrentSize() > m_autoFlushBound) TimedFlush(0, 0); @@ -209,10 +209,13 @@ unsigned int NetworkSink::Put2(const byte *inString, unsigned int length, int me assert(!blocking); unsigned int blockedBytes = STDMIN(m_buffer.CurrentSize() - targetSize, (unsigned long)length); m_buffer.UndoLazyPut(blockedBytes); + m_buffer.FinalizeLazyPut(); m_wasBlocked = true; m_skipBytes += length - blockedBytes; return STDMAX(blockedBytes, 1U); } + + m_buffer.FinalizeLazyPut(); m_wasBlocked = false; m_skipBytes = 0;