[Libreoffice-commits] core.git: Branch 'libreoffice-6-0' - editeng/source include/svtools svtools/source

Caolán McNamara caolanm at redhat.com
Thu Apr 5 14:22:39 UTC 2018


 editeng/source/rtf/svxrtf.cxx     |    6 +-----
 include/svtools/svparser.hxx      |    1 -
 svtools/source/svrtf/parrtf.cxx   |    8 +-------
 svtools/source/svrtf/svparser.cxx |    5 -----
 4 files changed, 2 insertions(+), 18 deletions(-)

New commits:
commit 35f5f4c1537eadab85cddde5f9fd47a7421ebf3d
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Mar 27 12:08:15 2018 +0100

    Resolves: tdf#116540 Revert "ofz infinite loop"
    
    This reverts commit e4551b905e12aa92b7509d9b994bfae5dec3d8e0.
    
    Change-Id: I95634dd166c51586b5da47b996993a098823ca32
    Reviewed-on: https://gerrit.libreoffice.org/51942
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/editeng/source/rtf/svxrtf.cxx b/editeng/source/rtf/svxrtf.cxx
index b62940dfc8b3..9a68c79a296c 100644
--- a/editeng/source/rtf/svxrtf.cxx
+++ b/editeng/source/rtf/svxrtf.cxx
@@ -295,11 +295,8 @@ void SvxRTFParser::ReadStyleTable()
     bIsInReadStyleTab = true;
     bChkStyleAttr = false;      // Do not check Attribute against the Styles
 
-    bool bLooping = false;
-
-    while (_nOpenBrakets && IsParserWorking() && !bLooping)
+    while( _nOpenBrakets && IsParserWorking() )
     {
-        auto nCurrentTokenIndex = m_nTokenIndex;
         int nToken = GetNextToken();
         switch( nToken )
         {
@@ -382,7 +379,6 @@ void SvxRTFParser::ReadStyleTable()
             }
             break;
         }
-        bLooping = nCurrentTokenIndex == m_nTokenIndex;
     }
     pStyle.reset();         // Delete the Last Style
     SkipToken();        // the closing brace is evaluated "above"
diff --git a/include/svtools/svparser.hxx b/include/svtools/svparser.hxx
index 2d3eaeeaf254..5ab0df9fca01 100644
--- a/include/svtools/svparser.hxx
+++ b/include/svtools/svparser.hxx
@@ -54,7 +54,6 @@ protected:
     sal_uLong           nlLinePos;          // current column number
 
     std::unique_ptr<SvParser_Impl<T>> pImplData; // internal data
-    long                m_nTokenIndex;      // current token index to detect loops for seeking backwards
     long                nTokenValue;        // additional value (RTF)
     bool                bTokenHasValue;     // indicates whether nTokenValue is valid
     SvParserState       eState;             // status also in derived classes
diff --git a/svtools/source/svrtf/parrtf.cxx b/svtools/source/svrtf/parrtf.cxx
index 52e350f52442..53bb4c7c8d32 100644
--- a/svtools/source/svrtf/parrtf.cxx
+++ b/svtools/source/svrtf/parrtf.cxx
@@ -602,12 +602,8 @@ void SvRTFParser::Continue( int nToken )
     if( !nToken )
         nToken = GetNextToken();
 
-    bool bLooping = false;
-
-    while (IsParserWorking() && !bLooping)
+    while( IsParserWorking() )
     {
-        auto nCurrentTokenIndex = m_nTokenIndex;
-
         SaveState( nToken );
         switch( nToken )
         {
@@ -664,8 +660,6 @@ NEXTTOKEN:
             SaveState( 0 );         // processed till here,
                                     // continue with new token!
         nToken = GetNextToken();
-
-        bLooping = nCurrentTokenIndex == m_nTokenIndex;
     }
     if( SvParserState::Accepted == eState && 0 < nOpenBrakets )
         eState = SvParserState::Error;
diff --git a/svtools/source/svrtf/svparser.cxx b/svtools/source/svrtf/svparser.cxx
index 021fa7255f77..b8d313e25e77 100644
--- a/svtools/source/svrtf/svparser.cxx
+++ b/svtools/source/svrtf/svparser.cxx
@@ -76,7 +76,6 @@ SvParser<T>::SvParser( SvStream& rIn, sal_uInt8 nStackSize )
     , nlLineNr( 1 )
     , nlLinePos( 1 )
     , pImplData( nullptr )
-    , m_nTokenIndex(0)
     , nTokenValue( 0 )
     , bTokenHasValue( false )
     , eState( SvParserState::NotStarted )
@@ -476,7 +475,6 @@ T SvParser<T>::GetNextToken()
         bTokenHasValue = pTokenStackPos->bTokenHasValue;
         aToken = pTokenStackPos->sToken;
         nRet = pTokenStackPos->nTokenId;
-        ++m_nTokenIndex;
     }
     // no, now push actual value on stack
     else if( SvParserState::Working == eState )
@@ -485,7 +483,6 @@ T SvParser<T>::GetNextToken()
         pTokenStackPos->nTokenValue = nTokenValue;
         pTokenStackPos->bTokenHasValue = bTokenHasValue;
         pTokenStackPos->nTokenId = nRet;
-        ++m_nTokenIndex;
     }
     else if( SvParserState::Accepted != eState && SvParserState::Pending != eState )
         eState = SvParserState::Error;       // an error occurred
@@ -504,8 +501,6 @@ T SvParser<T>::SkipToken( short nCnt )       // "skip" n Tokens backward
         nTmp = nTokenStackSize;
     nTokenStackPos = sal_uInt8(nTmp);
 
-    m_nTokenIndex -= nTmp;
-
     // restore values
     aToken = pTokenStackPos->sToken;
     nTokenValue = pTokenStackPos->nTokenValue;


More information about the Libreoffice-commits mailing list