summaryrefslogtreecommitdiff
path: root/package/source/zipapi/XUnbufferedStream.cxx
diff options
context:
space:
mode:
authorMohammed Abdul Azeem <azeemmysore@gmail.com>2017-06-08 13:32:42 +0530
committerMichael Meeks <michael.meeks@collabora.com>2017-06-08 12:50:17 +0200
commitd21a675d3a7deff37fd66adc993d0179d3a39ed7 (patch)
tree54d3464355fa8eb74fcd370cbdc9d59f37ddca9f /package/source/zipapi/XUnbufferedStream.cxx
parent630186ff4e0eba7317e542f8c3eca39ebd068721 (diff)
Fixing loose ends for multithread Sync in package/:
Mutexes in different classes operate exclusively, which might cause sync problem when multithreads are involved. This patch shares the mutex across all classes that share the underlying stream. Change-Id: I57e549fb7c375f93955bf54886b91b1892db1e27 Reviewed-on: https://gerrit.libreoffice.org/38563 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Michael Meeks <michael.meeks@collabora.com>
Diffstat (limited to 'package/source/zipapi/XUnbufferedStream.cxx')
-rw-r--r--package/source/zipapi/XUnbufferedStream.cxx5
1 files changed, 3 insertions, 2 deletions
diff --git a/package/source/zipapi/XUnbufferedStream.cxx b/package/source/zipapi/XUnbufferedStream.cxx
index 8992e227b24d..a7465e397e24 100644
--- a/package/source/zipapi/XUnbufferedStream.cxx
+++ b/package/source/zipapi/XUnbufferedStream.cxx
@@ -48,7 +48,7 @@ XUnbufferedStream::XUnbufferedStream(
bool bIsEncrypted,
const OUString& aMediaType,
bool bRecoveryMode )
-: maMutexHolder( aMutexHolder.is() ? aMutexHolder : rtl::Reference<SotMutexHolder>( new SotMutexHolder ) )
+: maMutexHolder( aMutexHolder )
, mxZipStream ( xNewZipStream )
, mxZipSeek ( xNewZipStream, UNO_QUERY )
, maEntry ( rEntry )
@@ -108,9 +108,10 @@ XUnbufferedStream::XUnbufferedStream(
// allows to read package raw stream
XUnbufferedStream::XUnbufferedStream(
const uno::Reference< uno::XComponentContext >& /*xContext*/,
+ const rtl::Reference<SotMutexHolder>& aMutexHolder,
const Reference < XInputStream >& xRawStream,
const ::rtl::Reference< EncryptionData >& rData )
-: maMutexHolder( new SotMutexHolder )
+: maMutexHolder( aMutexHolder )
, mxZipStream ( xRawStream )
, mxZipSeek ( xRawStream, UNO_QUERY )
, mnBlockSize( 1 )