writerfilter/qa/cppunittests/dmapper/DomainMapper.cxx | 6 ++++++ writerfilter/qa/cppunittests/dmapper/data/tdf158360.docx |binary writerfilter/source/dmapper/DomainMapper_Impl.cxx | 5 ++++- 3 files changed, 10 insertions(+), 1 deletion(-)
New commits: commit 7cf3d5e3073dc5cffc64b6d9b32513e90087a3d4 Author: Balazs Varga <[email protected]> AuthorDate: Tue Feb 20 20:26:25 2024 +0100 Commit: Balazs Varga <[email protected]> CommitDate: Wed Feb 21 20:36:38 2024 +0100 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 <[email protected]> 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 Binary files /dev/null and b/writerfilter/qa/cppunittests/dmapper/data/tdf158360.docx differ diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index f73504824ea0..0b1ff5e0e6e3 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -3287,7 +3287,10 @@ void DomainMapper_Impl::MergeAtContentImageRedlineWithNext(const css::uno::Refer { 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);
