summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <Michael.Stahl@cib.de>2020-07-21 17:30:55 +0200
committerXisco Fauli <xiscofauli@libreoffice.org>2020-07-22 13:16:25 +0200
commit724d5240f69abc675397260fad359080766d0ec5 (patch)
treed1c111ad89d9b678b3a077912cf6716d226e112f
parentb894890cfdddc7dd38f483c9a9b2592a24dd1697 (diff)
tdf#132911 sw_redlinehide: fix assert in CopyImplImpl()
With Ctrl+A, Ctrl+X, Ctrl+V we get the bAfterTable = true case; line 4722 does pCopyPam->GetPoint()->nNode-- and then line 5085 does pCopyPam->GetPoint()->nNode++ but the problem is that nContent still points to the same node as initially while the node after the table end node is now a different one, i.e. nNode and nContent point to different nodes and something in redlining asserts becuase of that with "Assertion `m_pIndexReg == rIndex.m_pIndexReg' failed."; we don't get to step 4 anyway. (reportedly something changed with commit 4532845e22c10f252840887e55002307227b2390 but it's a mystery what that would be) Change-Id: I23744fad543e1e7bfcc11c4b488d4469ba9e509c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99166 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 14bdbc36f0cf3913f6de10c746044b6aadf37095) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99193 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
-rw-r--r--sw/source/core/doc/DocumentContentOperationsManager.cxx6
1 files changed, 3 insertions, 3 deletions
diff --git a/sw/source/core/doc/DocumentContentOperationsManager.cxx b/sw/source/core/doc/DocumentContentOperationsManager.cxx
index 67bda981d6ea..4db8ad56c16c 100644
--- a/sw/source/core/doc/DocumentContentOperationsManager.cxx
+++ b/sw/source/core/doc/DocumentContentOperationsManager.cxx
@@ -5078,10 +5078,10 @@ bool DocumentContentOperationsManager::CopyImplImpl(SwPaM& rPam, SwPosition& rPo
pCopyPam->Move( fnMoveForward, bCanMoveBack ? GoInContent : GoInNode );
else
{
- // Reset the offset to 0 as it was before the insertion
- pCopyPam->GetPoint()->nContent = 0;
-
pCopyPam->GetPoint()->nNode++;
+
+ // Reset the offset to 0 as it was before the insertion
+ pCopyPam->GetPoint()->nContent.Assign(pCopyPam->GetPoint()->nNode.GetNode().GetContentNode(), 0);
// If the next node is a start node, then step back: the start node
// has been copied and needs to be in the selection for the undo
if (pCopyPam->GetPoint()->nNode.GetNode().IsStartNode())