summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBalazs Varga <balazs.varga.extern@allotropia.de>2024-02-20 20:26:25 +0100
committerMichael Stahl <michael.stahl@allotropia.de>2024-02-22 12:26:43 +0100
commit0a300e60ed73f76eeb61035086df6cf857a2fa85 (patch)
treeefc225ec80d6765a35fcf73b4bb5c31df6982853
parenttdf#159678: Fix heading dropdown list (diff)
downloadcore-0a300e60ed73f76eeb61035086df6cf857a2fa85.tar.gz
core-0a300e60ed73f76eeb61035086df6cf857a2fa85.zip
tdf#158360 - sw, ooxml import - fix insertTextPortion crash
Before this patch da8dead8e9282010893cbd12519e107baf03cd1a SvxUnoTextBase::insertTextPortion returned an empty XTextRange in case of texts in comment. (SwTextAPIObject) Lets use finishParagraphInsert which also give back an empty XTextRange. regression from commit: da8dead8e9282010893cbd12519e107baf03cd1a (tdf#73537 - sc: show author and creation date in calc comments) Change-Id: I0b33e5b3cae32718a62a7be04b9a88562f85652c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163670 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de> (cherry picked from commit 7cf3d5e3073dc5cffc64b6d9b32513e90087a3d4) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163626 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> (cherry picked from commit 64248c5d42bbf46eeb4c41e79dd0b5e4a360e280) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163629 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Michael Stahl <michael.stahl@allotropia.de> Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
-rw-r--r--writerfilter/qa/cppunittests/dmapper/DomainMapper.cxx6
-rw-r--r--writerfilter/qa/cppunittests/dmapper/data/tdf158360.docxbin0 -> 27389 bytes
-rw-r--r--writerfilter/source/dmapper/DomainMapper_Impl.cxx5
3 files changed, 10 insertions, 1 deletions
diff --git a/writerfilter/qa/cppunittests/dmapper/DomainMapper.cxx b/writerfilter/qa/cppunittests/dmapper/DomainMapper.cxx
index 8452da0203ab..885443c5a210 100644
--- a/writerfilter/qa/cppunittests/dmapper/DomainMapper.cxx
+++ b/writerfilter/qa/cppunittests/dmapper/DomainMapper.cxx
@@ -155,6 +155,12 @@ CPPUNIT_TEST_FIXTURE(Test, testFdo78333)
// just care that it doesn't crash/assert
loadFromFile(u"fdo78333-1-minimized.docx");
}
+
+CPPUNIT_TEST_FIXTURE(Test, testTdf158360)
+{
+ // just test that doc with annotation in TOC doesn't crash/assert
+ loadFromFile(u"tdf158360.docx");
+}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/writerfilter/qa/cppunittests/dmapper/data/tdf158360.docx b/writerfilter/qa/cppunittests/dmapper/data/tdf158360.docx
new file mode 100644
index 000000000000..a46ee67c007e
--- /dev/null
+++ b/writerfilter/qa/cppunittests/dmapper/data/tdf158360.docx
Binary files differ
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index 4ee9f58f3e4c..58568a910514 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -3253,7 +3253,10 @@ void DomainMapper_Impl::applyToggleAttributes(const PropertyMapPtr& pPropertyMap
{
xTOCTextCursor->goLeft(1, false);
}
- xTextRange = xTextAppend->insertTextPortion(rString, aValues, xTOCTextCursor);
+ if (IsInComments())
+ xTextRange = xTextAppend->finishParagraphInsert(aValues, xTOCTextCursor);
+ else
+ xTextRange = xTextAppend->insertTextPortion(rString, aValues, xTOCTextCursor);
SAL_WARN_IF(!xTextRange.is(), "writerfilter.dmapper", "insertTextPortion failed");
if (!xTextRange.is())
throw uno::Exception("insertTextPortion failed", nullptr);