sw/qa/core/text/text.cxx | 24 ++++++++++++++++++++++++ sw/source/core/unocore/unoobj2.cxx | 2 ++ sw/source/core/unocore/unotext.cxx | 2 +- sw/source/filter/xml/xmltbli.cxx | 11 ++++++----- sw/source/filter/xml/xmltexti.cxx | 2 +- 5 files changed, 34 insertions(+), 7 deletions(-)
New commits: commit 0f98e004706439057bfeef23514598c40cfef11b Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Fri Jan 20 16:57:06 2023 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Fri Jan 20 21:04:00 2023 +0000 cid#1520426 Unchecked dynamic_cast and cid#1520427 Unchecked dynamic_cast cid#1520428 Unchecked dynamic_cast cid#1520429 Unchecked dynamic_cast Change-Id: I618308e02910faf8999e89981f7a396314fa751a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145909 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/sw/source/core/unocore/unoobj2.cxx b/sw/source/core/unocore/unoobj2.cxx index 6983704ac2d2..38dc4eb8b827 100644 --- a/sw/source/core/unocore/unoobj2.cxx +++ b/sw/source/core/unocore/unoobj2.cxx @@ -1114,6 +1114,7 @@ bool XTextRangeToSwPaM( SwUnoInternalPaM & rToFill, xTextCursor.set(pHeadText->CreateTextCursor(true)); xTextCursor->gotoEnd(true); pCursor = dynamic_cast<OTextCursorHelper*>(xTextCursor.get()); + assert(pCursor && "cant must succeed"); pCursor->GetPaM()->Normalize(); } else @@ -1122,6 +1123,7 @@ bool XTextRangeToSwPaM( SwUnoInternalPaM & rToFill, xTextCursor.set( pText->CreateCursor() ); xTextCursor->gotoEnd(true); pCursor = dynamic_cast<OTextCursorHelper*>(xTextCursor.get()); + assert(pCursor && "cant must succeed"); } if(pRange && &pRange->GetDoc() == &rToFill.GetDoc()) { diff --git a/sw/source/core/unocore/unotext.cxx b/sw/source/core/unocore/unotext.cxx index f7e9451efba8..f4637d4dd987 100644 --- a/sw/source/core/unocore/unotext.cxx +++ b/sw/source/core/unocore/unotext.cxx @@ -969,7 +969,7 @@ bool SwXText::Impl::CheckForOwnMember( OTextCursorHelper *const pOwnCursor = dynamic_cast<OTextCursorHelper*>(xOwnCursor.get()); - OSL_ENSURE(pOwnCursor, "OTextCursorHelper::getUnoTunnelId() ??? "); + assert(pOwnCursor && "OTextCursorHelper::getUnoTunnelId() ???"); const SwStartNode* pOwnStartNode = pOwnCursor->GetPaM()->GetPointNode().StartOfSectionNode(); SwStartNodeType eSearchNodeType = SwNormalStartNode; diff --git a/sw/source/filter/xml/xmltbli.cxx b/sw/source/filter/xml/xmltbli.cxx index 0e884e3c5fce..1dadf0bcedda 100644 --- a/sw/source/filter/xml/xmltbli.cxx +++ b/sw/source/filter/xml/xmltbli.cxx @@ -2667,14 +2667,15 @@ const SwStartNode *SwXMLTableContext::InsertTableSection( ->InsertTableSection(pPrevSttNd, pStringValueStyleName); const SwStartNode *pStNd; - Reference<XInterface> xCursorTunnel( GetImport().GetTextImport()->GetCursor(), - UNO_QUERY); - OSL_ENSURE( xCursorTunnel.is(), "missing XUnoTunnel for Cursor" ); - OTextCursorHelper *pTextCursor = dynamic_cast<OTextCursorHelper*>(xCursorTunnel.get()); - OSL_ENSURE( pTextCursor, "SwXTextCursor missing" ); if( m_bFirstSection ) { + Reference<XInterface> xCursorTunnel( GetImport().GetTextImport()->GetCursor(), + UNO_QUERY); + OSL_ENSURE( xCursorTunnel.is(), "missing XUnoTunnel for Cursor" ); + OTextCursorHelper *pTextCursor = dynamic_cast<OTextCursorHelper*>(xCursorTunnel.get()); + assert(pTextCursor && "SwXTextCursor missing"); + // The Cursor already is in the first section pStNd = pTextCursor->GetPaM()->GetPointNode().FindTableBoxStartNode(); m_bFirstSection = false; diff --git a/sw/source/filter/xml/xmltexti.cxx b/sw/source/filter/xml/xmltexti.cxx index f64fceeaea1f..3035e22bce76 100644 --- a/sw/source/filter/xml/xmltexti.cxx +++ b/sw/source/filter/xml/xmltexti.cxx @@ -873,7 +873,7 @@ void SwXMLTextImportHelper::endAppletOrPlugin( SolarMutexGuard aGuard; SwXFrame* pFrame = dynamic_cast<SwXFrame*>(rPropSet.get()); - OSL_ENSURE( pFrame, "SwXFrame missing" ); + assert(pFrame && "SwXFrame missing"); SwFrameFormat *pFrameFormat = pFrame->GetFrameFormat(); const SwFormatContent& rContent = pFrameFormat->GetContent(); const SwNodeIndex *pNdIdx = rContent.GetContentIdx(); commit 114d41a0a8ffd6801896d04e01dd6cd0f13f7e34 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Fri Jan 20 16:31:07 2023 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Fri Jan 20 21:03:49 2023 +0000 don't crash with --disable-pdfium Change-Id: I194e5624344aa4f6699e855624ce8c5286c8cd25 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145906 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/sw/qa/core/text/text.cxx b/sw/qa/core/text/text.cxx index 9391630acd51..cb1eba81d97b 100644 --- a/sw/qa/core/text/text.cxx +++ b/sw/qa/core/text/text.cxx @@ -701,6 +701,10 @@ CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testContentControlPlaceholderPDF) CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testCheckboxContentControlPDF) { + std::shared_ptr<vcl::pdf::PDFium> pPDFium = vcl::pdf::PDFiumLibrary::get(); + if (!pPDFium) + return; + // Given a file with a checkbox content control: createSwDoc(); SwDoc* pDoc = getSwDoc(); @@ -727,6 +731,10 @@ CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testCheckboxContentControlPDF) CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testDropdownContentControlPDF) { + std::shared_ptr<vcl::pdf::PDFium> pPDFium = vcl::pdf::PDFiumLibrary::get(); + if (!pPDFium) + return; + // Given a file with a dropdown content control: createSwDoc(); SwDoc* pDoc = getSwDoc(); @@ -753,6 +761,10 @@ CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testDropdownContentControlPDF) CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testDateContentControlPDF) { + std::shared_ptr<vcl::pdf::PDFium> pPDFium = vcl::pdf::PDFiumLibrary::get(); + if (!pPDFium) + return; + // Given a file with a date content control: createSwDoc(); SwDoc* pDoc = getSwDoc(); @@ -782,6 +794,10 @@ CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testDateContentControlPDF) CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testContentControlPDFFont) { + std::shared_ptr<vcl::pdf::PDFium> pPDFium = vcl::pdf::PDFiumLibrary::get(); + if (!pPDFium) + return; + // Given a document with a custom 24pt font size and a content control: createSwDoc(); SwDoc* pDoc = getSwDoc(); @@ -810,6 +826,10 @@ CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testContentControlPDFFont) CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testComboContentControlPDF) { + std::shared_ptr<vcl::pdf::PDFium> pPDFium = vcl::pdf::PDFiumLibrary::get(); + if (!pPDFium) + return; + // Given a file with a combo box content control: createSwDoc(); SwDoc* pDoc = getSwDoc(); @@ -837,6 +857,10 @@ CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testComboContentControlPDF) CPPUNIT_TEST_FIXTURE(SwCoreTextTest, testRichContentControlPDF) { + std::shared_ptr<vcl::pdf::PDFium> pPDFium = vcl::pdf::PDFiumLibrary::get(); + if (!pPDFium) + return; + // Given a file with a rich content control, its value set to "xxx<b>yyy</b>": createSwDoc(); SwDoc* pDoc = getSwDoc();