diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2022-09-10 19:17:43 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-09-11 21:47:48 +0200 |
commit | 5bb826373f766a0ec105406a98d5529e2c360e8c (patch) | |
tree | 5485ef0fc0df5ffeec8e856e30582a7ff8792c45 /io | |
parent | 23118ce68a151232e542051d263d195b21d0d0e8 (diff) |
no need to allocate MemRingBuffer separately in OMarkableOutputStream
Change-Id: I80d64f18480a2c078caeaa161f55767f66021253
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139781
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'io')
-rw-r--r-- | io/source/stm/omark.cxx | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/io/source/stm/omark.cxx b/io/source/stm/omark.cxx index 3991e2c9d966..d4bf6c74169a 100644 --- a/io/source/stm/omark.cxx +++ b/io/source/stm/omark.cxx @@ -115,7 +115,7 @@ private: Reference< XOutputStream > m_output; bool m_bValidStream; - std::unique_ptr<MemRingBuffer> m_pBuffer; + MemRingBuffer m_aRingBuffer; map<sal_Int32,sal_Int32,less< sal_Int32 > > m_mapMarks; sal_Int32 m_nCurrentPos; sal_Int32 m_nCurrentMark; @@ -127,7 +127,6 @@ private: OMarkableOutputStream::OMarkableOutputStream( ) : m_bValidStream(false) - , m_pBuffer( new MemRingBuffer ) , m_nCurrentPos(0) , m_nCurrentMark(0) { @@ -139,14 +138,14 @@ void OMarkableOutputStream::writeBytes(const Sequence< sal_Int8 >& aData) if( !m_bValidStream ) { throw NotConnectedException(); } - if( m_mapMarks.empty() && ( m_pBuffer->getSize() == 0 ) ) { + if( m_mapMarks.empty() && ( m_aRingBuffer.getSize() == 0 ) ) { // no mark and buffer active, simple write through m_output->writeBytes( aData ); } else { std::unique_lock guard( m_mutex ); // new data must be buffered - m_pBuffer->writeAt( m_nCurrentPos , aData ); + m_aRingBuffer.writeAt( m_nCurrentPos , aData ); m_nCurrentPos += aData.getLength(); checkMarksAndFlush(); } @@ -179,7 +178,7 @@ void OMarkableOutputStream::closeOutput() // all marks must be cleared and all m_mapMarks.clear(); - m_nCurrentPos = m_pBuffer->getSize(); + m_nCurrentPos = m_aRingBuffer.getSize(); checkMarksAndFlush(); m_output->closeOutput(); @@ -232,7 +231,7 @@ void OMarkableOutputStream::jumpToMark(sal_Int32 nMark) void OMarkableOutputStream::jumpToFurthest() { std::unique_lock guard( m_mutex ); - m_nCurrentPos = m_pBuffer->getSize(); + m_nCurrentPos = m_aRingBuffer.getSize(); checkMarksAndFlush(); } @@ -328,8 +327,8 @@ void OMarkableOutputStream::checkMarksAndFlush() } Sequence<sal_Int8> seq(nNextFound); - m_pBuffer->readAt( 0 , seq , nNextFound ); - m_pBuffer->forgetFromStart( nNextFound ); + m_aRingBuffer.readAt( 0 , seq , nNextFound ); + m_aRingBuffer.forgetFromStart( nNextFound ); // now write data through to streams m_output->writeBytes( seq ); |