sw/source/core/doc/DocumentRedlineManager.cxx |   24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

New commits:
commit 033043c404c841860f241151d69c7b46640801b4
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Sat Nov 16 21:38:53 2024 +0000
Commit:     Caolán McNamara <caolan.mcnam...@collabora.com>
CommitDate: Sun Nov 17 15:41:03 2024 +0100

    cid#1607919 Overflowed constant
    
    Change-Id: I842357000f3282521aa927921a5598fddaef5dee
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176686
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    Tested-by: Jenkins

diff --git a/sw/source/core/doc/DocumentRedlineManager.cxx 
b/sw/source/core/doc/DocumentRedlineManager.cxx
index 81f0585655ef..b6f2ba079fbf 100644
--- a/sw/source/core/doc/DocumentRedlineManager.cxx
+++ b/sw/source/core/doc/DocumentRedlineManager.cxx
@@ -2603,7 +2603,7 @@ bool DocumentRedlineManager::SplitRedline( const SwPaM& 
rRange )
     bool bChg = false;
     SwRedlineTable::size_type n = 0;
     //FIXME overlapping problem GetRedline( *pStt, &n );
-    for ( ; n < maRedlineTable.size(); ++n)
+    while (n < maRedlineTable.size())
     {
         SwRangeRedline * pRedline = maRedlineTable[ n ];
         auto [pRedlineStart, pRedlineEnd] = pRedline->StartEnd();
@@ -2635,7 +2635,8 @@ bool DocumentRedlineManager::SplitRedline( const SwPaM& 
rRange )
 
             case 3:
                 
pRedline->InvalidateRange(SwRangeRedline::Invalidation::Remove);
-                maRedlineTable.DeleteAndDestroy( n-- );
+                maRedlineTable.DeleteAndDestroy( n );
+                // loop again with the same n to iterate to the next entry
                 pRedline = nullptr;
                 break;
             }
@@ -2655,6 +2656,8 @@ bool DocumentRedlineManager::SplitRedline( const SwPaM& 
rRange )
         }
         else if (*pEnd < *pRedlineStart)
             break;
+        if (pRedline)
+            ++n;
     }
     return bChg;
 
commit 5d2de069349528a137c8136233635dc3b9cc5f83
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Sat Nov 16 21:36:46 2024 +0000
Commit:     Caolán McNamara <caolan.mcnam...@collabora.com>
CommitDate: Sun Nov 17 15:40:56 2024 +0100

    pNew is only possible if there is a pRedLine
    
    so we can move this inside the other conditional
    
    Change-Id: I63259598d5165e3aafbf0c1cfef70ccb1b16bb38
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176685
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    Tested-by: Jenkins

diff --git a/sw/source/core/doc/DocumentRedlineManager.cxx 
b/sw/source/core/doc/DocumentRedlineManager.cxx
index d55bbd577f93..81f0585655ef 100644
--- a/sw/source/core/doc/DocumentRedlineManager.cxx
+++ b/sw/source/core/doc/DocumentRedlineManager.cxx
@@ -2639,14 +2639,19 @@ bool DocumentRedlineManager::SplitRedline( const SwPaM& 
rRange )
                 pRedline = nullptr;
                 break;
             }
-            if (pRedline && !pRedline->HasValidRange())
+
+            if (pRedline)
             {
-                // re-insert
-                maRedlineTable.Remove( n );
-                maRedlineTable.Insert( pRedline, n );
+                if (!pRedline->HasValidRange())
+                {
+                    // re-insert
+                    maRedlineTable.Remove( n );
+                    maRedlineTable.Insert( pRedline, n );
+                }
+
+                if (pNew)
+                    maRedlineTable.Insert(pNew, n);
             }
-            if( pNew )
-                maRedlineTable.Insert( pNew, n );
         }
         else if (*pEnd < *pRedlineStart)
             break;

Reply via email to