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

Michael Stahl (via logerrit) logerrit at kemper.freedesktop.org
Mon Oct 14 16:39:38 UTC 2019


 sw/source/core/crsr/findattr.cxx |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

New commits:
commit 4e0241697371c40f4348bdfb6585a872d4cbcbf6
Author:     Michael Stahl <Michael.Stahl at cib.de>
AuthorDate: Mon Oct 14 14:56:48 2019 +0200
Commit:     Michael Stahl <michael.stahl at cib.de>
CommitDate: Mon Oct 14 18:38:41 2019 +0200

    tdf#128138 sw_redlinehide: fix infinite loop in FindAttrsImpl()
    
    The code looked wrong previously, always assigning the end of the text
    node regardless of direction, but it turns out the improvement caused an
    infinite loop... let's just swap things after the loop, seems simpler
    than adding another if at the assignments.
    
    (regression from 4caef398af256be5f0c2a159129b528ee3702e5c)
    
    Change-Id: I098f5265fa86d6a2511a80a02230899a7a303a88
    Reviewed-on: https://gerrit.libreoffice.org/80774
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.stahl at cib.de>

diff --git a/sw/source/core/crsr/findattr.cxx b/sw/source/core/crsr/findattr.cxx
index 08d5b6d51e8d..7f35f3c37351 100644
--- a/sw/source/core/crsr/findattr.cxx
+++ b/sw/source/core/crsr/findattr.cxx
@@ -1190,9 +1190,12 @@ static bool FindAttrsImpl(SwPaM & rSearchPam,
         }
     }
 
-    // if backward search, switch point and mark
-    if( bFound && !bSrchForward )
-        rSearchPam.Exchange();
+    // in search direction, mark precedes point, because the next iteration
+    // starts at point
+    if (bFound)
+    {
+        rSearchPam.Normalize(!bSrchForward);
+    }
 
     return bFound;
 }


More information about the Libreoffice-commits mailing list