Kaydet (Commit) 3dfa702a authored tarafından Michael Stahl's avatar Michael Stahl

sw_redlinehide_2: avoid adjacent extents in UpdateMergedParaForDelete

It's more efficient to keep the vector small, and
UpdateMergedParaForInsert() may even assert in this case, so merge
the extents.

Change-Id: I8ffe47f27f667b4030d62db8f0119e45bfd62767
Reviewed-on: https://gerrit.libreoffice.org/60931
Tested-by: Jenkins
Reviewed-by: 's avatarMichael Stahl <Michael.Stahl@cib.de>
üst 06859755
......@@ -855,7 +855,7 @@ TextFrameIndex UpdateMergedParaForDelete(MergedPara & rMerged,
if (it->pNode == &rNode)
{
++nFoundNode;
if (nIndex + nToDelete <= it->nStart)
if (nIndex + nToDelete < it->nStart)
{
nToDelete = 0;
if (!isRealDelete)
......@@ -891,6 +891,15 @@ TextFrameIndex UpdateMergedParaForDelete(MergedPara & rMerged,
{ // adjust for deleted text
it->nStart -= (nLen - nToDelete);
it->nEnd -= (nLen - nToDelete + nDeleteHere);
if (it != rMerged.extents.begin()
&& (it-1)->pNode == &rNode
&& (it-1)->nEnd == it->nStart)
{ // merge adjacent extents
nTFIndex += it->nEnd - it->nStart;
(it-1)->nEnd = it->nEnd;
it = rMerged.extents.erase(it);
bErase = true; // skip increment
}
}
else
{ // exclude text marked as deleted
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment