diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2018-10-11 18:49:34 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-10-15 07:56:42 +0200 |
commit | 9ec8bf8f22fe74884185492ef2576ce79b41e4f1 (patch) | |
tree | 0b162c71c51a55125a2ce6055632d4f96180f431 /sot/source | |
parent | a84e3df74eecc8778e3d5be5dd80ad4ddb511edf (diff) |
add SvStream::TellEnd
and simplify callsites to use it instead of the current
"seek to end, find pos, seek back to original pos"
pattern
Change-Id: Ib5828868f73c341891efc759af8bd4695ae2f33c
Reviewed-on: https://gerrit.libreoffice.org/61738
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sot/source')
-rw-r--r-- | sot/source/sdstor/stg.cxx | 6 | ||||
-rw-r--r-- | sot/source/sdstor/stgcache.cxx | 6 | ||||
-rw-r--r-- | sot/source/sdstor/stgdir.cxx | 4 | ||||
-rw-r--r-- | sot/source/sdstor/stgstrms.cxx | 4 | ||||
-rw-r--r-- | sot/source/sdstor/storage.cxx | 5 | ||||
-rw-r--r-- | sot/source/sdstor/ucbstorage.cxx | 15 |
6 files changed, 12 insertions, 28 deletions
diff --git a/sot/source/sdstor/stg.cxx b/sot/source/sdstor/stg.cxx index bb74237bff5a..60147cd319ee 100644 --- a/sot/source/sdstor/stg.cxx +++ b/sot/source/sdstor/stg.cxx @@ -374,7 +374,7 @@ Storage::Storage( SvStream& r, bool bDirect ) if( r.GetError() == ERRCODE_NONE ) { pIo->SetStrm( &r, false ); - sal_uInt64 nSize = r.Seek( STREAM_SEEK_TO_END ); + sal_uInt64 nSize = r.TellEnd(); r.Seek( 0 ); // Initializing is OK if the stream is empty Init( nSize == 0 ); @@ -419,7 +419,7 @@ Storage::Storage( UCBStorageStream& rStrm, bool bDirect ) pIo->SetStrm( &rStrm ); - sal_uInt64 nSize = pStream->Seek( STREAM_SEEK_TO_END ); + sal_uInt64 nSize = pStream->TellEnd(); pStream->Seek( 0 ); // Initializing is OK if the stream is empty Init( nSize == 0 ); @@ -444,7 +444,7 @@ void Storage::Init( bool bCreate ) OSL_ENSURE( pIo, "The pointer may not be empty at this point!" ); if( pIo->Good() && pIo->GetStrm() ) { - sal_uInt64 nSize = pIo->GetStrm()->Seek( STREAM_SEEK_TO_END ); + sal_uInt64 nSize = pIo->GetStrm()->TellEnd(); pIo->GetStrm()->Seek( 0 ); if( nSize ) { diff --git a/sot/source/sdstor/stgcache.cxx b/sot/source/sdstor/stgcache.cxx index e21ac2335af0..532b74e3d501 100644 --- a/sot/source/sdstor/stgcache.cxx +++ b/sot/source/sdstor/stgcache.cxx @@ -111,10 +111,8 @@ void StgCache::SetPhysPageSize( short n ) if ( n >= 512 ) { m_nPageSize = n; - sal_uInt64 nPos = m_pStrm->Tell(); - sal_uInt64 nFileSize = m_pStrm->Seek( STREAM_SEEK_TO_END ); + sal_uInt64 nFileSize = m_pStrm->TellEnd(); m_nPages = lcl_GetPageCount( nFileSize, m_nPageSize ); - m_pStrm->Seek( nPos ); } } @@ -295,7 +293,7 @@ bool StgCache::Open( const OUString& rName, StreamMode nMode ) SetStrm( pFileStrm, true ); if( pFileStrm->IsOpen() ) { - sal_uInt64 nFileSize = m_pStrm->Seek( STREAM_SEEK_TO_END ); + sal_uInt64 nFileSize = m_pStrm->TellEnd(); m_nPages = lcl_GetPageCount( nFileSize, m_nPageSize ); m_pStrm->Seek( 0 ); } diff --git a/sot/source/sdstor/stgdir.cxx b/sot/source/sdstor/stgdir.cxx index 4fcb13b85ac8..da729a9031ef 100644 --- a/sot/source/sdstor/stgdir.cxx +++ b/sot/source/sdstor/stgdir.cxx @@ -738,9 +738,7 @@ void StgDirStrm::SetupEntry( sal_Int32 n, StgDirEntry* pUpper ) if( p ) { SvStream *pUnderlyingStream = m_rIo.GetStrm(); - sal_uInt64 nCur = pUnderlyingStream->Tell(); - sal_uInt64 nUnderlyingStreamSize = pUnderlyingStream->Seek(STREAM_SEEK_TO_END); - pUnderlyingStream->Seek(nCur); + sal_uInt64 nUnderlyingStreamSize = pUnderlyingStream->TellEnd(); bool bOk(false); StgDirEntry* pCur = new StgDirEntry( p, STGENTRY_SIZE, nUnderlyingStreamSize, &bOk ); diff --git a/sot/source/sdstor/stgstrms.cxx b/sot/source/sdstor/stgstrms.cxx index ae140fdb128a..35d99f27751f 100644 --- a/sot/source/sdstor/stgstrms.cxx +++ b/sot/source/sdstor/stgstrms.cxx @@ -1212,9 +1212,7 @@ sal_uInt64 StgTmpStrm::GetSize() const sal_uInt64 n; if( m_pStrm ) { - sal_uInt64 old = m_pStrm->Tell(); - n = m_pStrm->Seek( STREAM_SEEK_TO_END ); - m_pStrm->Seek( old ); + n = m_pStrm->TellEnd(); } else n = nEndOfData; diff --git a/sot/source/sdstor/storage.cxx b/sot/source/sdstor/storage.cxx index cb484cca4215..829dd82cb4c8 100644 --- a/sot/source/sdstor/storage.cxx +++ b/sot/source/sdstor/storage.cxx @@ -177,10 +177,7 @@ void SotStorageStream::SetSize(sal_uInt64 const nNewSize) sal_uInt32 SotStorageStream::GetSize() const { - sal_uInt64 nPos = Tell(); - const_cast<SotStorageStream *>(this)->Seek( STREAM_SEEK_TO_END ); - sal_uInt64 nSize = Tell(); - const_cast<SotStorageStream *>(this)->Seek( nPos ); + sal_uInt64 nSize = const_cast<SotStorageStream*>(this)->TellEnd(); return nSize; } diff --git a/sot/source/sdstor/ucbstorage.cxx b/sot/source/sdstor/ucbstorage.cxx index c5c8c13fb088..05027ed580b2 100644 --- a/sot/source/sdstor/ucbstorage.cxx +++ b/sot/source/sdstor/ucbstorage.cxx @@ -262,16 +262,11 @@ sal_Int64 SAL_CALL FileStreamWrapper_Impl::getLength( ) ::osl::MutexGuard aGuard( m_aMutex ); checkConnected(); - sal_uInt32 nCurrentPos = m_pSvStream->Tell(); checkError(); - m_pSvStream->Seek(STREAM_SEEK_TO_END); - sal_uInt32 nEndPos = m_pSvStream->Tell(); - m_pSvStream->Seek(nCurrentPos); + sal_Int64 nEndPos = m_pSvStream->TellEnd(); - checkError(); - - return static_cast<sal_Int64>(nEndPos); + return nEndPos; } @@ -2875,8 +2870,7 @@ bool UCBStorage::IsStorageFile( SvStream* pFile ) return false; sal_uInt64 nPos = pFile->Tell(); - pFile->Seek( STREAM_SEEK_TO_END ); - if ( pFile->Tell() < 4 ) + if ( pFile->TellEnd() < 4 ) return false; pFile->Seek(0); @@ -2905,8 +2899,7 @@ OUString UCBStorage::GetLinkedFile( SvStream &rStream ) { OUString aString; sal_uInt64 nPos = rStream.Tell(); - rStream.Seek( STREAM_SEEK_TO_END ); - if ( !rStream.Tell() ) + if ( !rStream.TellEnd() ) return aString; rStream.Seek(0); |