sw/source/core/doc/DocumentRedlineManager.cxx |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit de49e1c55dc10ce1b59345af5cc49fde3adf65b7
Author:     Michael Stahl <michael.st...@allotropia.de>
AuthorDate: Fri Jul 15 20:55:35 2022 +0200
Commit:     Michael Stahl <michael.st...@allotropia.de>
CommitDate: Mon Jul 18 10:58:00 2022 +0200

    tdf#149548 sw: don't rely on binary search in SplitRedline()
    
    The problem is that for this bugdoc overlapping redlines are created by
    writerfilter, and so this one survives the split in SwDoc::TextToTable()
    when creating a cell on node 146 to 149:
    
    $125 = (SwRangeRedline) {
      <SwPaM> = SwPaM = {
        point = SwPosition (node 155, offset 156),
        mark = SwPosition (node 146, offset 0)
      },
    
    It's not found in GetRedline(), as that relies on the redlines never
    overlapping, so isn't split at end of 149.
    
    Then when copying to the clipboard, all redlines are deleted and this
    deletes cell start and end nodes, while the cell's SwTableBox is still
    referenced elsewhere.
    
    (reportedly somehow a regression from
    commit c4cf85766453982f1aa94a7f2cb22af19ed100be)
    
    Change-Id: I6466e6777cd83c7625381f7049f30c8a2f487af1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137110
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>

diff --git a/sw/source/core/doc/DocumentRedlineManager.cxx 
b/sw/source/core/doc/DocumentRedlineManager.cxx
index 9e3d79c14146..fb7580a4862f 100644
--- a/sw/source/core/doc/DocumentRedlineManager.cxx
+++ b/sw/source/core/doc/DocumentRedlineManager.cxx
@@ -2490,7 +2490,7 @@ bool DocumentRedlineManager::SplitRedline( const SwPaM& 
rRange )
     SwRedlineTable::size_type n = 0;
     const SwPosition* pStt = rRange.Start();
     const SwPosition* pEnd = rRange.End();
-    GetRedline( *pStt, &n );
+    //FIXME overlapping problem GetRedline( *pStt, &n );
     for ( ; n < maRedlineTable.size(); ++n)
     {
         SwRangeRedline * pRedline = maRedlineTable[ n ];

Reply via email to