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 ];