[Libreoffice-commits] core.git: sot/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Tue Feb 5 13:45:31 UTC 2019
sot/source/sdstor/stg.cxx | 20 +--
sot/source/sdstor/stgdir.cxx | 165 ++++++++++++-------------
sot/source/sdstor/stgio.cxx | 24 +--
sot/source/sdstor/ucbstorage.cxx | 82 ++++++------
sot/source/unoolestorage/xolesimplestorage.cxx | 34 ++---
5 files changed, 162 insertions(+), 163 deletions(-)
New commits:
commit 8a7a93b3f24b95bfcffc25e58f9e43c7be4cc1f1
Author: Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Tue Feb 5 14:03:13 2019 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Tue Feb 5 14:45:08 2019 +0100
loplugin:flatten in sot
Change-Id: I66ca5113054862f1549a3d7c27da70cf4f5fc308
Reviewed-on: https://gerrit.libreoffice.org/67403
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/sot/source/sdstor/stg.cxx b/sot/source/sdstor/stg.cxx
index 435cfa2e80c4..d22bbbe6a465 100644
--- a/sot/source/sdstor/stg.cxx
+++ b/sot/source/sdstor/stg.cxx
@@ -518,19 +518,19 @@ const OUString& Storage::GetName() const
void Storage::FillInfoList( SvStorageInfoList* pList ) const
{
- if( Validate() && pList )
+ if( !(Validate() && pList) )
+ return;
+
+ StgIterator aIter( *pEntry );
+ StgDirEntry* p = aIter.First();
+ while( p )
{
- StgIterator aIter( *pEntry );
- StgDirEntry* p = aIter.First();
- while( p )
+ if( !p->m_bInvalid )
{
- if( !p->m_bInvalid )
- {
- SvStorageInfo aInfo( *p );
- pList->push_back( aInfo );
- }
- p = aIter.Next();
+ SvStorageInfo aInfo( *p );
+ pList->push_back( aInfo );
}
+ p = aIter.Next();
}
}
diff --git a/sot/source/sdstor/stgdir.cxx b/sot/source/sdstor/stgdir.cxx
index df077cf1d911..71a1268cb84d 100644
--- a/sot/source/sdstor/stgdir.cxx
+++ b/sot/source/sdstor/stgdir.cxx
@@ -148,20 +148,19 @@ void StgDirEntry::DelTemp( bool bForce )
bForce = true;
m_pDown->DelTemp( bForce );
}
- if( ( bForce || m_bInvalid )
- && ( m_aEntry.GetType() != STG_ROOT ) /* && ( nRefCnt <= 1 ) */ )
+ if( !( bForce || m_bInvalid ) || ( m_aEntry.GetType() == STG_ROOT ) )
+ return;
+
+ Close();
+ if( m_pUp )
{
- Close();
- if( m_pUp )
+ // this deletes the element if refcnt == 0!
+ bool bDel = m_nRefCnt == 0;
+ StgAvlNode::Remove( reinterpret_cast<StgAvlNode**>(&m_pUp->m_pDown), this, bDel );
+ if( !bDel )
{
- // this deletes the element if refcnt == 0!
- bool bDel = m_nRefCnt == 0;
- StgAvlNode::Remove( reinterpret_cast<StgAvlNode**>(&m_pUp->m_pDown), this, bDel );
- if( !bDel )
- {
- m_pLeft = m_pRight = m_pDown = nullptr;
- m_bInvalid = m_bZombie = true;
- }
+ m_pLeft = m_pRight = m_pDown = nullptr;
+ m_bInvalid = m_bZombie = true;
}
}
}
@@ -494,26 +493,26 @@ sal_Int32 StgDirEntry::Write( const void* p, sal_Int32 nLen )
void StgDirEntry::Copy( BaseStorageStream& rDest )
{
sal_Int32 n = GetSize();
- if( rDest.SetSize( n ) && n )
- {
- sal_uLong Pos = rDest.Tell();
- sal_uInt8 aTempBytes[ 4096 ];
- void* p = static_cast<void*>( aTempBytes );
- Seek( 0 );
- rDest.Seek( 0 );
- while( n )
- {
- sal_Int32 nn = n;
- if( nn > 4096 )
- nn = 4096;
- if( Read( p, nn ) != nn )
- break;
- if( sal::static_int_cast<sal_Int32>(rDest.Write( p, nn )) != nn )
- break;
- n -= nn;
- }
- rDest.Seek( Pos ); // ?! Seems to be undocumented !
+ if( !(rDest.SetSize( n ) && n) )
+ return;
+
+ sal_uLong Pos = rDest.Tell();
+ sal_uInt8 aTempBytes[ 4096 ];
+ void* p = static_cast<void*>( aTempBytes );
+ Seek( 0 );
+ rDest.Seek( 0 );
+ while( n )
+ {
+ sal_Int32 nn = n;
+ if( nn > 4096 )
+ nn = 4096;
+ if( Read( p, nn ) != nn )
+ break;
+ if( sal::static_int_cast<sal_Int32>(rDest.Write( p, nn )) != nn )
+ break;
+ n -= nn;
}
+ rDest.Seek( Pos ); // ?! Seems to be undocumented !
}
// Commit this entry
@@ -733,71 +732,71 @@ StgDirStrm::~StgDirStrm()
void StgDirStrm::SetupEntry( sal_Int32 n, StgDirEntry* pUpper )
{
void* p = ( n == STG_FREE ) ? nullptr : GetEntry( n, false );
- if( p )
+ if( !p )
+ return;
+
+ SvStream *pUnderlyingStream = m_rIo.GetStrm();
+ sal_uInt64 nUnderlyingStreamSize = pUnderlyingStream->TellEnd();
+
+ bool bOk(false);
+ std::unique_ptr<StgDirEntry> pCur(new StgDirEntry( p, STGENTRY_SIZE, nUnderlyingStreamSize, &bOk ));
+
+ if( !bOk )
{
- SvStream *pUnderlyingStream = m_rIo.GetStrm();
- sal_uInt64 nUnderlyingStreamSize = pUnderlyingStream->TellEnd();
+ m_rIo.SetError( SVSTREAM_GENERALERROR );
+ // an error occurred
+ return;
+ }
- bool bOk(false);
- std::unique_ptr<StgDirEntry> pCur(new StgDirEntry( p, STGENTRY_SIZE, nUnderlyingStreamSize, &bOk ));
+ // better it is
+ if( !pUpper )
+ pCur->m_aEntry.SetType( STG_ROOT );
- if( !bOk )
+ sal_Int32 nLeft = pCur->m_aEntry.GetLeaf( STG_LEFT );
+ sal_Int32 nRight = pCur->m_aEntry.GetLeaf( STG_RIGHT );
+ // substorage?
+ sal_Int32 nLeaf = STG_FREE;
+ if( pCur->m_aEntry.GetType() == STG_STORAGE || pCur->m_aEntry.GetType() == STG_ROOT )
+ {
+ nLeaf = pCur->m_aEntry.GetLeaf( STG_CHILD );
+ if (nLeaf != STG_FREE && nLeaf == n)
{
m_rIo.SetError( SVSTREAM_GENERALERROR );
- // an error occurred
return;
}
+ }
- // better it is
- if( !pUpper )
- pCur->m_aEntry.SetType( STG_ROOT );
+ if( !(nLeaf != 0 && nLeft != 0 && nRight != 0) )
+ return;
- sal_Int32 nLeft = pCur->m_aEntry.GetLeaf( STG_LEFT );
- sal_Int32 nRight = pCur->m_aEntry.GetLeaf( STG_RIGHT );
- // substorage?
- sal_Int32 nLeaf = STG_FREE;
- if( pCur->m_aEntry.GetType() == STG_STORAGE || pCur->m_aEntry.GetType() == STG_ROOT )
+ //fdo#41642
+ StgDirEntry *pUp = pUpper;
+ while (pUp)
+ {
+ if (pUp->m_aEntry.GetLeaf(STG_CHILD) == nLeaf)
{
- nLeaf = pCur->m_aEntry.GetLeaf( STG_CHILD );
- if (nLeaf != STG_FREE && nLeaf == n)
- {
- m_rIo.SetError( SVSTREAM_GENERALERROR );
- return;
- }
+ SAL_WARN("sot", "Leaf node of upper StgDirEntry is same as current StgDirEntry's leaf node. Circular entry chain, discarding link");
+ return;
}
+ pUp = pUp->m_pUp;
+ }
- if( nLeaf != 0 && nLeft != 0 && nRight != 0 )
- {
- //fdo#41642
- StgDirEntry *pUp = pUpper;
- while (pUp)
- {
- if (pUp->m_aEntry.GetLeaf(STG_CHILD) == nLeaf)
- {
- SAL_WARN("sot", "Leaf node of upper StgDirEntry is same as current StgDirEntry's leaf node. Circular entry chain, discarding link");
- return;
- }
- pUp = pUp->m_pUp;
- }
-
- if( StgAvlNode::Insert
- ( reinterpret_cast<StgAvlNode**>( pUpper ? &pUpper->m_pDown : &m_pRoot ), pCur.get() ) )
- {
- pCur->m_pUp = pUpper;
- }
- else
- {
- // bnc#682484: There are some really broken docs out there
- // that contain duplicate entries in 'Directory' section
- // so don't set the error flag here and just skip those
- // (was: rIo.SetError( SVSTREAM_CANNOT_MAKE );)
- return;
- }
- SetupEntry( nLeft, pUpper );
- SetupEntry( nRight, pUpper );
- SetupEntry( nLeaf, pCur.release() );
- }
+ if( StgAvlNode::Insert
+ ( reinterpret_cast<StgAvlNode**>( pUpper ? &pUpper->m_pDown : &m_pRoot ), pCur.get() ) )
+ {
+ pCur->m_pUp = pUpper;
+ }
+ else
+ {
+ // bnc#682484: There are some really broken docs out there
+ // that contain duplicate entries in 'Directory' section
+ // so don't set the error flag here and just skip those
+ // (was: rIo.SetError( SVSTREAM_CANNOT_MAKE );)
+ return;
}
+ SetupEntry( nLeft, pUpper );
+ SetupEntry( nRight, pUpper );
+ SetupEntry( nLeaf, pCur.release() );
}
// Extend or shrink the directory stream.
diff --git a/sot/source/sdstor/stgio.cxx b/sot/source/sdstor/stgio.cxx
index e41c3d356ce4..2a82c0731b52 100644
--- a/sot/source/sdstor/stgio.cxx
+++ b/sot/source/sdstor/stgio.cxx
@@ -105,20 +105,20 @@ void StgIo::SetupStreams()
m_pFAT = new StgFATStrm(*this, nFatStrmSize);
m_pTOC = new StgDirStrm(*this);
- if( !GetError() )
+ if( GetError() )
+ return;
+
+ StgDirEntry* pRoot = m_pTOC->GetRoot();
+ if( pRoot )
{
- StgDirEntry* pRoot = m_pTOC->GetRoot();
- if( pRoot )
- {
- m_pDataFAT = new StgDataStrm( *this, m_aHdr.GetDataFATStart(), -1 );
- m_pDataStrm = new StgDataStrm( *this, *pRoot );
- m_pDataFAT->SetIncrement( 1 << m_aHdr.GetPageSize() );
- m_pDataStrm->SetIncrement( GetDataPageSize() );
- m_pDataStrm->SetEntry( *pRoot );
- }
- else
- SetError( SVSTREAM_FILEFORMAT_ERROR );
+ m_pDataFAT = new StgDataStrm( *this, m_aHdr.GetDataFATStart(), -1 );
+ m_pDataStrm = new StgDataStrm( *this, *pRoot );
+ m_pDataFAT->SetIncrement( 1 << m_aHdr.GetPageSize() );
+ m_pDataStrm->SetIncrement( GetDataPageSize() );
+ m_pDataStrm->SetEntry( *pRoot );
}
+ else
+ SetError( SVSTREAM_FILEFORMAT_ERROR );
}
// get the logical data page size
diff --git a/sot/source/sdstor/ucbstorage.cxx b/sot/source/sdstor/ucbstorage.cxx
index c4136ade6ddf..6bdcffbf42b3 100644
--- a/sot/source/sdstor/ucbstorage.cxx
+++ b/sot/source/sdstor/ucbstorage.cxx
@@ -1315,22 +1315,22 @@ void UCBStorageStream::CopyTo( BaseStorageStream* pDestStm )
if( n < 0 )
return;
- if( pDestStm->SetSize( n ) && n )
+ if( !pDestStm->SetSize( n ) || !n )
+ return;
+
+ std::unique_ptr<sal_uInt8[]> p(new sal_uInt8[ 4096 ]);
+ Seek( 0 );
+ pDestStm->Seek( 0 );
+ while( n )
{
- std::unique_ptr<sal_uInt8[]> p(new sal_uInt8[ 4096 ]);
- Seek( 0 );
- pDestStm->Seek( 0 );
- while( n )
- {
- sal_uInt32 nn = n;
- if( nn > 4096 )
- nn = 4096;
- if( Read( p.get(), nn ) != nn )
- break;
- if( pDestStm->Write( p.get(), nn ) != nn )
- break;
- n -= nn;
- }
+ sal_uInt32 nn = n;
+ if( nn > 4096 )
+ nn = 4096;
+ if( Read( p.get(), nn ) != nn )
+ break;
+ if( pDestStm->Write( p.get(), nn ) != nn )
+ break;
+ n -= nn;
}
}
@@ -1630,23 +1630,23 @@ void UCBStorage_Impl::Init()
}
}
- if ( !m_aContentType.isEmpty() )
- {
- // get the clipboard format using the content type
- css::datatransfer::DataFlavor aDataFlavor;
- aDataFlavor.MimeType = m_aContentType;
- m_nFormat = SotExchange::GetFormat( aDataFlavor );
+ if ( m_aContentType.isEmpty() )
+ return;
+
+ // get the clipboard format using the content type
+ css::datatransfer::DataFlavor aDataFlavor;
+ aDataFlavor.MimeType = m_aContentType;
+ m_nFormat = SotExchange::GetFormat( aDataFlavor );
- // get the ClassId using the clipboard format ( internal table )
- m_aClassId = GetClassId_Impl( m_nFormat );
+ // get the ClassId using the clipboard format ( internal table )
+ m_aClassId = GetClassId_Impl( m_nFormat );
- // get human presentable name using the clipboard format
- SotExchange::GetFormatDataFlavor( m_nFormat, aDataFlavor );
- m_aUserTypeName = aDataFlavor.HumanPresentableName;
+ // get human presentable name using the clipboard format
+ SotExchange::GetFormatDataFlavor( m_nFormat, aDataFlavor );
+ m_aUserTypeName = aDataFlavor.HumanPresentableName;
- if( m_pContent && !m_bIsLinked && m_aClassId != SvGlobalName() )
- ReadContent();
- }
+ if( m_pContent && !m_bIsLinked && m_aClassId != SvGlobalName() )
+ ReadContent();
}
void UCBStorage_Impl::CreateContent()
@@ -1874,20 +1874,20 @@ void UCBStorage_Impl::SetProps( const Sequence < Sequence < PropertyValue > >& r
}
}
- if ( !m_aContentType.isEmpty() )
- {
- // get the clipboard format using the content type
- css::datatransfer::DataFlavor aDataFlavor;
- aDataFlavor.MimeType = m_aContentType;
- m_nFormat = SotExchange::GetFormat( aDataFlavor );
+ if ( m_aContentType.isEmpty() )
+ return;
+
+ // get the clipboard format using the content type
+ css::datatransfer::DataFlavor aDataFlavor;
+ aDataFlavor.MimeType = m_aContentType;
+ m_nFormat = SotExchange::GetFormat( aDataFlavor );
- // get the ClassId using the clipboard format ( internal table )
- m_aClassId = GetClassId_Impl( m_nFormat );
+ // get the ClassId using the clipboard format ( internal table )
+ m_aClassId = GetClassId_Impl( m_nFormat );
- // get human presentable name using the clipboard format
- SotExchange::GetFormatDataFlavor( m_nFormat, aDataFlavor );
- m_aUserTypeName = aDataFlavor.HumanPresentableName;
- }
+ // get human presentable name using the clipboard format
+ SotExchange::GetFormatDataFlavor( m_nFormat, aDataFlavor );
+ m_aUserTypeName = aDataFlavor.HumanPresentableName;
}
void UCBStorage_Impl::GetProps( sal_Int32& nProps, Sequence < Sequence < PropertyValue > >& rSequence, const OUString& rPath )
diff --git a/sot/source/unoolestorage/xolesimplestorage.cxx b/sot/source/unoolestorage/xolesimplestorage.cxx
index c61b643811f0..1725a990f3d3 100644
--- a/sot/source/unoolestorage/xolesimplestorage.cxx
+++ b/sot/source/unoolestorage/xolesimplestorage.cxx
@@ -154,27 +154,27 @@ OLESimpleStorage::~OLESimpleStorage()
void OLESimpleStorage::UpdateOriginal_Impl()
{
- if ( !m_bNoTemporaryCopy )
- {
- uno::Reference< io::XSeekable > xSeek( m_xStream, uno::UNO_QUERY_THROW );
- xSeek->seek( 0 );
+ if ( m_bNoTemporaryCopy )
+ return;
- uno::Reference< io::XSeekable > xTempSeek( m_xTempStream, uno::UNO_QUERY_THROW );
- sal_Int64 nPos = xTempSeek->getPosition();
- xTempSeek->seek( 0 );
+ uno::Reference< io::XSeekable > xSeek( m_xStream, uno::UNO_QUERY_THROW );
+ xSeek->seek( 0 );
- uno::Reference< io::XInputStream > xTempInp = m_xTempStream->getInputStream();
- uno::Reference< io::XOutputStream > xOutputStream = m_xStream->getOutputStream();
- if ( !xTempInp.is() || !xOutputStream.is() )
- throw uno::RuntimeException();
+ uno::Reference< io::XSeekable > xTempSeek( m_xTempStream, uno::UNO_QUERY_THROW );
+ sal_Int64 nPos = xTempSeek->getPosition();
+ xTempSeek->seek( 0 );
- uno::Reference< io::XTruncate > xTrunc( xOutputStream, uno::UNO_QUERY_THROW );
- xTrunc->truncate();
+ uno::Reference< io::XInputStream > xTempInp = m_xTempStream->getInputStream();
+ uno::Reference< io::XOutputStream > xOutputStream = m_xStream->getOutputStream();
+ if ( !xTempInp.is() || !xOutputStream.is() )
+ throw uno::RuntimeException();
- ::comphelper::OStorageHelper::CopyInputToOutput( xTempInp, xOutputStream );
- xOutputStream->flush();
- xTempSeek->seek( nPos );
- }
+ uno::Reference< io::XTruncate > xTrunc( xOutputStream, uno::UNO_QUERY_THROW );
+ xTrunc->truncate();
+
+ ::comphelper::OStorageHelper::CopyInputToOutput( xTempInp, xOutputStream );
+ xOutputStream->flush();
+ xTempSeek->seek( nPos );
}
More information about the Libreoffice-commits
mailing list