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

New commits:
commit ad02c781e5cf4b8bf94e94c5ba9bd951b431a478
Author:     Michael Stahl <[email protected]>
AuthorDate: Mon Oct 14 14:56:48 2019 +0200
Commit:     Michael Stahl <[email protected]>
CommitDate: Tue Oct 15 11:24:13 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 <[email protected]>
    (cherry picked from commit 4e0241697371c40f4348bdfb6585a872d4cbcbf6)
    Reviewed-on: https://gerrit.libreoffice.org/80786
    Tested-by: Michael Stahl <[email protected]>

diff --git a/sw/source/core/crsr/findattr.cxx b/sw/source/core/crsr/findattr.cxx
index 3c10c8da2ab0..efaea7584af8 100644
--- a/sw/source/core/crsr/findattr.cxx
+++ b/sw/source/core/crsr/findattr.cxx
@@ -1196,9 +1196,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;
 }
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to