summaryrefslogtreecommitdiff
path: root/io/source/stm/streamhelper.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'io/source/stm/streamhelper.cxx')
-rw-r--r--io/source/stm/streamhelper.cxx29
1 files changed, 15 insertions, 14 deletions
diff --git a/io/source/stm/streamhelper.cxx b/io/source/stm/streamhelper.cxx
index 2eace1e70d4c..4a2df5891be1 100644
--- a/io/source/stm/streamhelper.cxx
+++ b/io/source/stm/streamhelper.cxx
@@ -68,21 +68,22 @@ void MemRingBuffer::resizeBuffer( sal_Int32 nMinSize )
nNewLen = m_nBufferLen;
}
- if( nNewLen != m_nBufferLen ) {
- if (auto p = static_cast<sal_Int8*>(std::realloc(m_p, nNewLen)))
- m_p = p;
- else
- {
- throw css::io::BufferSizeExceededException(
- "MemRingBuffer::resizeBuffer BufferSizeExceededException");
- }
-
- if( m_nStart + m_nOccupiedBuffer > m_nBufferLen ) {
- memmove( &( m_p[m_nStart+(nNewLen-m_nBufferLen)]) , &(m_p[m_nStart]) , m_nBufferLen - m_nStart );
- m_nStart += nNewLen - m_nBufferLen;
- }
- m_nBufferLen = nNewLen;
+ if( nNewLen == m_nBufferLen )
+ return;
+
+ auto p = static_cast<sal_Int8*>(std::realloc(m_p, nNewLen));
+ if (!p)
+ throw css::io::BufferSizeExceededException(
+ "MemRingBuffer::resizeBuffer BufferSizeExceededException");
+
+ m_p = p;
+
+
+ if( m_nStart + m_nOccupiedBuffer > m_nBufferLen ) {
+ memmove( &( m_p[m_nStart+(nNewLen-m_nBufferLen)]) , &(m_p[m_nStart]) , m_nBufferLen - m_nStart );
+ m_nStart += nNewLen - m_nBufferLen;
}
+ m_nBufferLen = nNewLen;
}