[Libreoffice-commits] core.git: sc/source

László Németh laszlo.nemeth at collabora.com
Wed Feb 11 13:07:43 PST 2015


 sc/source/filter/excel/xestream.cxx |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

New commits:
commit 8e2293e06adba3f22e824acad99983fb5b997e4d
Author: László Németh <laszlo.nemeth at 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 );
 }
 


More information about the Libreoffice-commits mailing list