summaryrefslogtreecommitdiff
path: root/editeng
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2022-02-19 20:43:33 +0000
committerAndras Timar <andras.timar@collabora.com>2022-02-21 15:51:24 +0100
commit247a2f53d5a2aa747797fbf1ccd8844d58c55013 (patch)
treecbadb50e84746c1c69e7d946068890a7abf06694 /editeng
parent9602ddf8476dee2288361cd63b75456479289163 (diff)
tdf#147166 EditTextObjectImpl copy ctor doesn't exactly copy EditTextObjectImpl
and this is apparently relied on, so eliding the copy gives unexpected results. EditTextObjectImpl::Clone returns a copy of *this, but the EditTextObjectImpl copy ctor explicitly does not copy the "PortionInfo" member, so in: commit fb8973f31f111229be5184f4e4223e963ced2c7b Author: Caolán McNamara <caolanm@redhat.com> Date: Sat Oct 10 19:21:38 2020 +0100 ofz#23492 the only user of this ctor throws away the original of the clone so we can take ownership of the original instead where the copy was optimized away we want from a state where there was a new EditTextObjectImpl with an empty PortionInfo member to one where the PortionInfo of the EditTextObjectImpl was retained. So explicitly clear this unwanted info. It's very hard to make rational judgements about code if a copy behaves differently than the orignal :-( Change-Id: I642d60841d6bdccbf830f8a2ccdbd9f542a8aa18 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130158 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
Diffstat (limited to 'editeng')
-rw-r--r--editeng/source/outliner/outliner.cxx1
1 files changed, 1 insertions, 0 deletions
diff --git a/editeng/source/outliner/outliner.cxx b/editeng/source/outliner/outliner.cxx
index d50bdc9b3895..00b5ff202992 100644
--- a/editeng/source/outliner/outliner.cxx
+++ b/editeng/source/outliner/outliner.cxx
@@ -381,6 +381,7 @@ std::optional<OutlinerParaObject> Outliner::CreateParaObject( sal_Int32 nStartPa
aParagraphDataVector[nPara-nStartPara] = *GetParagraph(nPara);
}
+ xText->ClearPortionInfo(); // tdf#147166 the PortionInfo is unwanted here
OutlinerParaObject aPObj(std::move(xText), std::move(aParagraphDataVector), bIsEditDoc);
aPObj.SetOutlinerMode(GetOutlinerMode());