package/source/xstor/owriteablestream.cxx | 32 ++++++++++-------------------- package/source/xstor/owriteablestream.hxx | 4 +-- 2 files changed, 13 insertions(+), 23 deletions(-)
New commits: commit 1ec54b38f1fad81d8e456c6c7d2e4a1d665f25b9 Author: Caolán McNamara <[email protected]> AuthorDate: Wed Mar 1 17:39:40 2023 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Wed Mar 1 19:37:19 2023 +0000 assert that Mutex exists at ctor time and drop the never can be hit throw Change-Id: I74c92f1ff50ef0f3f6f78a53057f121a3665ec3e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148072 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> diff --git a/package/source/xstor/owriteablestream.cxx b/package/source/xstor/owriteablestream.cxx index d41e363137d0..97b78249f6d8 100644 --- a/package/source/xstor/owriteablestream.cxx +++ b/package/source/xstor/owriteablestream.cxx @@ -1237,6 +1237,7 @@ uno::Reference< io::XStream > OWriteStream_Impl::GetStream_Impl( sal_Int32 nStre } rtl::Reference<OWriteStream> tmp; + assert(m_xMutex.is() && "No mutex!"); if ( !xStream.is() ) tmp = new OWriteStream( *this, bHierarchyAccess ); else @@ -1535,10 +1536,6 @@ OWriteStream::OWriteStream( OWriteStream_Impl& rImpl, bool bTransacted ) , m_nInitPosition( 0 ) , m_bTransacted( bTransacted ) { - OSL_ENSURE( m_pImpl->m_xMutex.is(), "No mutex!" ); - - if ( !m_pImpl->m_xMutex.is() ) - throw uno::RuntimeException(); // just a disaster } OWriteStream::OWriteStream( OWriteStream_Impl& rImpl, uno::Reference< io::XStream > const & xStream, bool bTransacted ) @@ -1551,11 +1548,6 @@ OWriteStream::OWriteStream( OWriteStream_Impl& rImpl, uno::Reference< io::XStrea , m_nInitPosition( 0 ) , m_bTransacted( bTransacted ) { - OSL_ENSURE( m_pImpl->m_xMutex.is(), "No mutex!" ); - - if ( !m_pImpl->m_xMutex.is() ) - throw uno::RuntimeException(); // just a disaster - if ( xStream.is() ) { m_xInStream = xStream->getInputStream(); commit f6633ad610173d6e22a29124d1903f9e5032ea29 Author: Caolán McNamara <[email protected]> AuthorDate: Wed Mar 1 17:30:16 2023 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Wed Mar 1 19:37:05 2023 +0000 cid#1521559 pass arg as ref to prove no Dereference before null check and cid#1521561 Dereference before null check and drop pointless null check Change-Id: I2e99733eb5f1861bb02f6d8ec7a44ace4ded16cd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148070 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> diff --git a/package/source/xstor/owriteablestream.cxx b/package/source/xstor/owriteablestream.cxx index 859facc6fad2..d41e363137d0 100644 --- a/package/source/xstor/owriteablestream.cxx +++ b/package/source/xstor/owriteablestream.cxx @@ -1238,9 +1238,9 @@ uno::Reference< io::XStream > OWriteStream_Impl::GetStream_Impl( sal_Int32 nStre rtl::Reference<OWriteStream> tmp; if ( !xStream.is() ) - tmp = new OWriteStream( this, bHierarchyAccess ); + tmp = new OWriteStream( *this, bHierarchyAccess ); else - tmp = new OWriteStream( this, xStream, bHierarchyAccess ); + tmp = new OWriteStream( *this, xStream, bHierarchyAccess ); m_pAntiImpl = tmp.get(); return tmp; @@ -1525,37 +1525,35 @@ void OWriteStream_Impl::CommitStreamRelInfo( const uno::Reference< embed::XStora // OWriteStream implementation -OWriteStream::OWriteStream( OWriteStream_Impl* pImpl, bool bTransacted ) -: m_pImpl( pImpl ) -, m_xSharedMutex( pImpl->m_xMutex ) -, m_aListenersContainer( pImpl->m_xMutex->GetMutex() ) +OWriteStream::OWriteStream( OWriteStream_Impl& rImpl, bool bTransacted ) +: m_pImpl( &rImpl ) +, m_xSharedMutex( rImpl.m_xMutex ) +, m_aListenersContainer( rImpl.m_xMutex->GetMutex() ) , m_nStorageType( m_pImpl->m_nStorageType ) , m_bInStreamDisconnected( false ) , m_bInitOnDemand( true ) , m_nInitPosition( 0 ) , m_bTransacted( bTransacted ) { - OSL_ENSURE( pImpl, "No base implementation!" ); OSL_ENSURE( m_pImpl->m_xMutex.is(), "No mutex!" ); - if ( !m_pImpl || !m_pImpl->m_xMutex.is() ) + if ( !m_pImpl->m_xMutex.is() ) throw uno::RuntimeException(); // just a disaster } -OWriteStream::OWriteStream( OWriteStream_Impl* pImpl, uno::Reference< io::XStream > const & xStream, bool bTransacted ) -: m_pImpl( pImpl ) -, m_xSharedMutex( pImpl->m_xMutex ) -, m_aListenersContainer( pImpl->m_xMutex->GetMutex() ) +OWriteStream::OWriteStream( OWriteStream_Impl& rImpl, uno::Reference< io::XStream > const & xStream, bool bTransacted ) +: m_pImpl( &rImpl ) +, m_xSharedMutex( rImpl.m_xMutex ) +, m_aListenersContainer( rImpl.m_xMutex->GetMutex() ) , m_nStorageType( m_pImpl->m_nStorageType ) , m_bInStreamDisconnected( false ) , m_bInitOnDemand( false ) , m_nInitPosition( 0 ) , m_bTransacted( bTransacted ) { - OSL_ENSURE( pImpl && xStream.is(), "No base implementation!" ); OSL_ENSURE( m_pImpl->m_xMutex.is(), "No mutex!" ); - if ( !m_pImpl || !m_pImpl->m_xMutex.is() ) + if ( !m_pImpl->m_xMutex.is() ) throw uno::RuntimeException(); // just a disaster if ( xStream.is() ) diff --git a/package/source/xstor/owriteablestream.hxx b/package/source/xstor/owriteablestream.hxx index 6b8e886e6748..e04b50c99341 100644 --- a/package/source/xstor/owriteablestream.hxx +++ b/package/source/xstor/owriteablestream.hxx @@ -253,8 +253,8 @@ protected: bool m_bTransacted; - OWriteStream( OWriteStream_Impl* pImpl, bool bTransacted ); - OWriteStream( OWriteStream_Impl* pImpl, css::uno::Reference< css::io::XStream > const & xStream, bool bTransacted ); + OWriteStream( OWriteStream_Impl& rImpl, bool bTransacted ); + OWriteStream( OWriteStream_Impl& rImpl, css::uno::Reference< css::io::XStream > const & xStream, bool bTransacted ); void CloseOutput_Impl();
