[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.2' - sw/source
Ashod Nakashian (via logerrit)
logerrit at kemper.freedesktop.org
Thu Dec 26 02:38:08 UTC 2019
sw/source/core/txtnode/ndtxt.cxx | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
New commits:
commit 6ffcbd6e8e07989af0dac07e2e43dfd96693dd7a
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
AuthorDate: Fri Sep 28 06:27:09 2018 -0400
Commit: Ashod Nakashian <ashnakash at gmail.com>
CommitDate: Thu Dec 26 03:37:40 2019 +0100
sw: paragraph-sign: erase metafields from copied text correctly
This is relevant for paragraph signatures where the
metadata is not yet copied and so we exclude it.
The issue was that in some cases we didn't use
the proper range of text and an assertion was
triggered in debug builds.
Otherwise there should be no change of behavior
in release builds with this patch.
Change-Id: I90bc2ca56d586b96d39f34c68de53d3dac6099d7
Reviewed-on: https://gerrit.libreoffice.org/63000
Tested-by: Jenkins
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
(cherry picked from commit 15701ab315a9d4cfc9ab0b05eae11a61b008eddc)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85800
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx
index 3904e11699e6..619e99efa1b5 100644
--- a/sw/source/core/txtnode/ndtxt.cxx
+++ b/sw/source/core/txtnode/ndtxt.cxx
@@ -2017,7 +2017,7 @@ void SwTextNode::CopyText( SwTextNode *const pDest,
{
CHECK_SWPHINTS_IF_FRM(this);
CHECK_SWPHINTS(pDest);
- sal_Int32 nTextStartIdx = rStart.GetIndex();
+ const sal_Int32 nTextStartIdx = rStart.GetIndex();
sal_Int32 nDestStart = rDestStart.GetIndex(); // remember old Pos
if (pDest->GetDoc()->IsClipBoard() && GetNum())
@@ -2108,7 +2108,6 @@ void SwTextNode::CopyText( SwTextNode *const pDest,
// Fetch end only now, because copying into self updates the start index
// and all attributes
- nTextStartIdx = rStart.GetIndex();
const sal_Int32 nEnd = nTextStartIdx + nLen;
// 2. copy attributes
@@ -2256,8 +2255,10 @@ void SwTextNode::CopyText( SwTextNode *const pDest,
std::reverse(metaFieldRanges.begin(), metaFieldRanges.end());
for (const auto& pair : metaFieldRanges)
{
- const SwIndex aIdx(pDest, pair.first);
- pDest->EraseText(aIdx, pair.second - pair.first);
+ const SwIndex aIdx(pDest, std::max<sal_Int32>(pair.first - nTextStartIdx, 0));
+ const sal_Int32 nCount = pair.second - pair.first;
+ if (nCount > 0)
+ pDest->EraseText(aIdx, nCount);
}
}
More information about the Libreoffice-commits
mailing list