sc/source/filter/excel/xestream.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
New commits: commit 8e2293e06adba3f22e824acad99983fb5b997e4d Author: László Németh <laszlo.nem...@collabora.com> Date: Wed Feb 11 21:45:13 2015 +0100 tdf#89319 remove redundant file seekings in XLS export Normally StartRecord() is called with closed records and with end position of the stream set by EndRecord(), so the mrStrm.Seek( STREAM_SEEK_TO_END ) in the InitRecord() is a redundant call. The patch removes this call, and sets it only for the non redundant cases: when there is an unclosed record in StartRecord() or a continue record in StartContinue(). Change-Id: Iecbcaf01cbfe6094fa73d5ed41dba5f01417edb3 diff --git a/sc/source/filter/excel/xestream.cxx b/sc/source/filter/excel/xestream.cxx index 48153eb..f104db2 100644 --- a/sc/source/filter/excel/xestream.cxx +++ b/sc/source/filter/excel/xestream.cxx @@ -109,6 +109,8 @@ void XclExpStream::StartRecord( sal_uInt16 nRecId, sal_Size nRecSize ) DisableEncryption(); mnMaxContSize = mnCurrMaxSize = mnMaxRecSize; mnPredictSize = nRecSize; + if ( mbInRec ) + mrStrm.Seek( STREAM_SEEK_TO_END ); mbInRec = true; InitRecord( nRecId ); SetSliceSize( 0 ); @@ -380,7 +382,7 @@ sal_uInt64 XclExpStream::SetSvStreamPos(sal_uInt64 const nPos) void XclExpStream::InitRecord( sal_uInt16 nRecId ) { - mrStrm.Seek( STREAM_SEEK_TO_END ); + OSL_ENSURE( mrStrm.remainingSize() == 0, "XclExpStream::InitRecord - not in end position" ); mrStrm.WriteUInt16( nRecId ); mnLastSizePos = mrStrm.Tell(); @@ -417,6 +419,7 @@ void XclExpStream::StartContinue() UpdateRecSize(); mnCurrMaxSize = mnMaxContSize; mnPredictSize -= mnCurrSize; + mrStrm.Seek( STREAM_SEEK_TO_END ); InitRecord( EXC_ID_CONT ); }
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits