summaryrefslogtreecommitdiff
path: root/comphelper/source
diff options
context:
space:
mode:
Diffstat (limited to 'comphelper/source')
-rw-r--r--comphelper/source/streaming/seqstream.cxx23
1 files changed, 14 insertions, 9 deletions
diff --git a/comphelper/source/streaming/seqstream.cxx b/comphelper/source/streaming/seqstream.cxx
index 7cffb774232f..b33c63f0931b 100644
--- a/comphelper/source/streaming/seqstream.cxx
+++ b/comphelper/source/streaming/seqstream.cxx
@@ -57,13 +57,13 @@ inline sal_Int32 SequenceInputStream::avail()
sal_Int32 SAL_CALL SequenceInputStream::readBytes( Sequence<sal_Int8>& aData, sal_Int32 nBytesToRead )
{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- sal_Int32 nAvail = avail();
-
if (nBytesToRead < 0)
throw BufferSizeExceededException(OUString(),*this);
+ std::lock_guard aGuard( m_aMutex );
+
+ sal_Int32 nAvail = avail();
+
if (nAvail < nBytesToRead)
nBytesToRead = nAvail;
@@ -84,13 +84,13 @@ sal_Int32 SAL_CALL SequenceInputStream::readSomeBytes( Sequence<sal_Int8>& aData
void SAL_CALL SequenceInputStream::skipBytes( sal_Int32 nBytesToSkip )
{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- sal_Int32 nAvail = avail();
-
if (nBytesToSkip < 0)
throw BufferSizeExceededException(OUString(),*this);
+ std::lock_guard aGuard( m_aMutex );
+
+ sal_Int32 nAvail = avail();
+
if (nAvail < nBytesToSkip)
nBytesToSkip = nAvail;
@@ -100,7 +100,7 @@ void SAL_CALL SequenceInputStream::skipBytes( sal_Int32 nBytesToSkip )
sal_Int32 SAL_CALL SequenceInputStream::available( )
{
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::lock_guard aGuard( m_aMutex );
return avail();
}
@@ -108,6 +108,8 @@ sal_Int32 SAL_CALL SequenceInputStream::available( )
void SAL_CALL SequenceInputStream::closeInput( )
{
+ std::lock_guard aGuard( m_aMutex );
+
if (m_nPos == -1)
throw NotConnectedException(OUString(), *this);
@@ -118,16 +120,19 @@ void SAL_CALL SequenceInputStream::seek( sal_Int64 location )
{
if ( location > m_aData.getLength() || location < 0 || location > SAL_MAX_INT32 )
throw IllegalArgumentException("bad location", static_cast<cppu::OWeakObject*>(this), 1);
+ std::lock_guard aGuard( m_aMutex );
m_nPos = static_cast<sal_Int32>(location);
}
sal_Int64 SAL_CALL SequenceInputStream::getPosition()
{
+ std::lock_guard aGuard( m_aMutex );
return m_nPos;
}
sal_Int64 SAL_CALL SequenceInputStream::getLength( )
{
+ std::lock_guard aGuard( m_aMutex );
return m_aData.getLength();
}