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();

Reply via email to