[Libreoffice-commits] core.git: 3 commits - sc/qa sd/qa sw/qa sw/source

Caolán McNamara caolanm at redhat.com
Sat Dec 16 23:05:53 UTC 2017


 sc/qa/unit/tiledrendering/tiledrendering.cxx   |   72 +++++++++++----------
 sd/qa/unit/tiledrendering/tiledrendering.cxx   |   84 +++++++++++++------------
 sw/qa/extras/tiledrendering/tiledrendering.cxx |   41 ++++++------
 sw/source/core/layout/atrfrm.cxx               |   83 ++++++++++++------------
 sw/source/core/txtnode/ndtxt.cxx               |    4 -
 5 files changed, 152 insertions(+), 132 deletions(-)

New commits:
commit e75b67c68ace40cc25ef525003d334fc56de6423
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sat Dec 16 15:58:31 2017 +0000

    coverity#1426171 Unchecked dynamic_cast
    
    and
    
    coverity#1426170 Unchecked dynamic_cast
    coverity#1426164 Unchecked dynamic_cast
    coverity#1426165 Unchecked dynamic_cast
    
    and duplicated lines look like cnp gone wrong
    
    Change-Id: I195204e9d0a4d591fbe210241203a17b22b25ec1
    Reviewed-on: https://gerrit.libreoffice.org/46603
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sc/qa/unit/tiledrendering/tiledrendering.cxx b/sc/qa/unit/tiledrendering/tiledrendering.cxx
index 7d80d8349ded..0fe4d7a4b5c4 100644
--- a/sc/qa/unit/tiledrendering/tiledrendering.cxx
+++ b/sc/qa/unit/tiledrendering/tiledrendering.cxx
@@ -1440,14 +1440,16 @@ void ScTiledRenderingTest::testDocumentRepair()
     int nView2 = SfxLokHelper::getView();
     CPPUNIT_ASSERT(pView1 != pView2);
     {
-        std::unique_ptr<SfxPoolItem> pItem1;
-        std::unique_ptr<SfxPoolItem> pItem2;
-        pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem1);
-        pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem2);
-        CPPUNIT_ASSERT(dynamic_cast< const SfxBoolItem* >(pItem1.get()));
-        CPPUNIT_ASSERT(dynamic_cast< const SfxBoolItem* >(pItem2.get()));
-        CPPUNIT_ASSERT_EQUAL(false, dynamic_cast< const SfxBoolItem* >(pItem1.get())->GetValue());
-        CPPUNIT_ASSERT_EQUAL(false, dynamic_cast< const SfxBoolItem* >(pItem2.get())->GetValue());
+        std::unique_ptr<SfxPoolItem> xItem1;
+        std::unique_ptr<SfxPoolItem> xItem2;
+        pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem1);
+        pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem2);
+        const SfxBoolItem* pItem1 = dynamic_cast< const SfxBoolItem* >(xItem1.get());
+        const SfxBoolItem* pItem2 = dynamic_cast< const SfxBoolItem* >(xItem2.get());
+        CPPUNIT_ASSERT(pItem1);
+        CPPUNIT_ASSERT(pItem2);
+        CPPUNIT_ASSERT_EQUAL(false, pItem1->GetValue());
+        CPPUNIT_ASSERT_EQUAL(false, pItem2->GetValue());
     }
 
     // Insert a character in the second view.
@@ -1459,14 +1461,16 @@ void ScTiledRenderingTest::testDocumentRepair()
     pModelObj->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::RETURN);
     Scheduler::ProcessEventsToIdle();
     {
-        std::unique_ptr<SfxPoolItem> pItem1;
-        std::unique_ptr<SfxPoolItem> pItem2;
-        pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem1);
-        pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem2);
-        CPPUNIT_ASSERT(dynamic_cast< const SfxBoolItem* >(pItem1.get()));
-        CPPUNIT_ASSERT(dynamic_cast< const SfxBoolItem* >(pItem2.get()));
-        CPPUNIT_ASSERT_EQUAL(true, dynamic_cast< const SfxBoolItem* >(pItem1.get())->GetValue());
-        CPPUNIT_ASSERT_EQUAL(true, dynamic_cast< const SfxBoolItem* >(pItem2.get())->GetValue());
+        std::unique_ptr<SfxPoolItem> xItem1;
+        std::unique_ptr<SfxPoolItem> xItem2;
+        pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem1);
+        pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem2);
+        const SfxBoolItem* pItem1 = dynamic_cast< const SfxBoolItem* >(xItem1.get());
+        const SfxBoolItem* pItem2 = dynamic_cast< const SfxBoolItem* >(xItem2.get());
+        CPPUNIT_ASSERT(pItem1);
+        CPPUNIT_ASSERT(pItem2);
+        CPPUNIT_ASSERT_EQUAL(true, pItem1->GetValue());
+        CPPUNIT_ASSERT_EQUAL(true, pItem2->GetValue());
     }
 
     comphelper::LibreOfficeKit::setActive(false);
@@ -1489,14 +1493,16 @@ void ScTiledRenderingTest::testLanguageStatus()
     CPPUNIT_ASSERT(pView1 != pView2);
     const OUString aLangBolivia("Spanish (Bolivia)");
     {
-        std::unique_ptr<SfxPoolItem> pItem1;
-        std::unique_ptr<SfxPoolItem> pItem2;
-        pView1->GetViewFrame()->GetBindings().QueryState(SID_LANGUAGE_STATUS, pItem1);
-        pView2->GetViewFrame()->GetBindings().QueryState(SID_LANGUAGE_STATUS, pItem2);
-        CPPUNIT_ASSERT(dynamic_cast< const SfxStringItem* >(pItem1.get()));
-        CPPUNIT_ASSERT(dynamic_cast< const SfxStringItem* >(pItem2.get()));
-        CPPUNIT_ASSERT(!dynamic_cast< const SfxStringItem* >(pItem1.get())->GetValue().isEmpty());
-        CPPUNIT_ASSERT(!dynamic_cast< const SfxStringItem* >(pItem1.get())->GetValue().isEmpty());
+        std::unique_ptr<SfxPoolItem> xItem1;
+        std::unique_ptr<SfxPoolItem> xItem2;
+        pView1->GetViewFrame()->GetBindings().QueryState(SID_LANGUAGE_STATUS, xItem1);
+        pView2->GetViewFrame()->GetBindings().QueryState(SID_LANGUAGE_STATUS, xItem2);
+        const SfxStringItem* pItem1 = dynamic_cast<const SfxStringItem*>(xItem1.get());
+        const SfxStringItem* pItem2 = dynamic_cast<const SfxStringItem*>(xItem2.get());
+        CPPUNIT_ASSERT(pItem1);
+        CPPUNIT_ASSERT(pItem2);
+        CPPUNIT_ASSERT(!pItem1->GetValue().isEmpty());
+        CPPUNIT_ASSERT(!pItem2->GetValue().isEmpty());
     }
 
     {
@@ -1506,14 +1512,16 @@ void ScTiledRenderingTest::testLanguageStatus()
     }
 
     {
-        std::unique_ptr<SfxPoolItem> pItem1;
-        std::unique_ptr<SfxPoolItem> pItem2;
-        pView1->GetViewFrame()->GetBindings().QueryState(SID_LANGUAGE_STATUS, pItem1);
-        pView2->GetViewFrame()->GetBindings().QueryState(SID_LANGUAGE_STATUS, pItem2);
-        CPPUNIT_ASSERT(dynamic_cast< const SfxStringItem* >(pItem1.get()));
-        CPPUNIT_ASSERT(dynamic_cast< const SfxStringItem* >(pItem2.get()));
-        CPPUNIT_ASSERT_EQUAL(aLangBolivia, dynamic_cast< const SfxStringItem* >(pItem1.get())->GetValue());
-        CPPUNIT_ASSERT_EQUAL(aLangBolivia, dynamic_cast< const SfxStringItem* >(pItem1.get())->GetValue());
+        std::unique_ptr<SfxPoolItem> xItem1;
+        std::unique_ptr<SfxPoolItem> xItem2;
+        pView1->GetViewFrame()->GetBindings().QueryState(SID_LANGUAGE_STATUS, xItem1);
+        pView2->GetViewFrame()->GetBindings().QueryState(SID_LANGUAGE_STATUS, xItem2);
+        const SfxStringItem* pItem1 = dynamic_cast<const SfxStringItem*>(xItem1.get());
+        const SfxStringItem* pItem2 = dynamic_cast<const SfxStringItem*>(xItem2.get());
+        CPPUNIT_ASSERT(pItem1);
+        CPPUNIT_ASSERT(pItem2);
+        CPPUNIT_ASSERT_EQUAL(aLangBolivia, pItem1->GetValue());
+        CPPUNIT_ASSERT_EQUAL(aLangBolivia, pItem2->GetValue());
     }
 }
 
diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx b/sd/qa/unit/tiledrendering/tiledrendering.cxx
index 24c4354217a8..63080a2461e2 100644
--- a/sd/qa/unit/tiledrendering/tiledrendering.cxx
+++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx
@@ -1813,12 +1813,12 @@ void SdTiledRenderingTest::testDisableUndoRepair()
     pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'h', 0);
     Scheduler::ProcessEventsToIdle();
     {
-        std::unique_ptr<SfxPoolItem> pItem1;
-        std::unique_ptr<SfxPoolItem> pItem2;
-        pView1->GetViewFrame()->GetBindings().QueryState(SID_UNDO, pItem1);
-        pView2->GetViewFrame()->GetBindings().QueryState(SID_UNDO, pItem2);
-        CPPUNIT_ASSERT(!dynamic_cast< const SfxUInt32Item* >(pItem1.get()));
-        const SfxUInt32Item* pUInt32Item = dynamic_cast<const SfxUInt32Item*>(pItem2.get());
+        std::unique_ptr<SfxPoolItem> xItem1;
+        std::unique_ptr<SfxPoolItem> xItem2;
+        pView1->GetViewFrame()->GetBindings().QueryState(SID_UNDO, xItem1);
+        pView2->GetViewFrame()->GetBindings().QueryState(SID_UNDO, xItem2);
+        CPPUNIT_ASSERT(!dynamic_cast< const SfxUInt32Item* >(xItem1.get()));
+        const SfxUInt32Item* pUInt32Item = dynamic_cast<const SfxUInt32Item*>(xItem2.get());
         CPPUNIT_ASSERT(pUInt32Item);
         CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(SID_REPAIRPACKAGE), pUInt32Item->GetValue());
     }
@@ -1832,12 +1832,12 @@ void SdTiledRenderingTest::testDisableUndoRepair()
     pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'c', 0);
     Scheduler::ProcessEventsToIdle();
     {
-        std::unique_ptr<SfxPoolItem> pItem1;
-        std::unique_ptr<SfxPoolItem> pItem2;
-        pView1->GetViewFrame()->GetBindings().QueryState(SID_UNDO, pItem1);
-        pView2->GetViewFrame()->GetBindings().QueryState(SID_UNDO, pItem2);
-        CPPUNIT_ASSERT(!dynamic_cast< const SfxUInt32Item* >(pItem2.get()));
-        const SfxUInt32Item* pUInt32Item = dynamic_cast<const SfxUInt32Item*>(pItem1.get());
+        std::unique_ptr<SfxPoolItem> xItem1;
+        std::unique_ptr<SfxPoolItem> xItem2;
+        pView1->GetViewFrame()->GetBindings().QueryState(SID_UNDO, xItem1);
+        pView2->GetViewFrame()->GetBindings().QueryState(SID_UNDO, xItem2);
+        CPPUNIT_ASSERT(!dynamic_cast< const SfxUInt32Item* >(xItem2.get()));
+        const SfxUInt32Item* pUInt32Item = dynamic_cast<const SfxUInt32Item*>(xItem1.get());
         CPPUNIT_ASSERT(pUInt32Item);
         CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt32>(SID_REPAIRPACKAGE), pUInt32Item->GetValue());
     }
@@ -1862,14 +1862,16 @@ void SdTiledRenderingTest::testDocumentRepair()
     int nView2 = SfxLokHelper::getView();
     CPPUNIT_ASSERT(pView1 != pView2);
     {
-        std::unique_ptr<SfxPoolItem> pItem1;
-        std::unique_ptr<SfxPoolItem> pItem2;
-        pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem1);
-        pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem2);
-        CPPUNIT_ASSERT(dynamic_cast< const SfxBoolItem* >(pItem1.get()));
-        CPPUNIT_ASSERT(dynamic_cast< const SfxBoolItem* >(pItem2.get()));
-        CPPUNIT_ASSERT_EQUAL(false, dynamic_cast< const SfxBoolItem* >(pItem1.get())->GetValue());
-        CPPUNIT_ASSERT_EQUAL(false, dynamic_cast< const SfxBoolItem* >(pItem2.get())->GetValue());
+        std::unique_ptr<SfxPoolItem> xItem1;
+        std::unique_ptr<SfxPoolItem> xItem2;
+        pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem1);
+        pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem2);
+        const SfxBoolItem* pItem1 = dynamic_cast<const SfxBoolItem*>(xItem1.get());
+        const SfxBoolItem* pItem2 = dynamic_cast<const SfxBoolItem*>(xItem2.get());
+        CPPUNIT_ASSERT(pItem1);
+        CPPUNIT_ASSERT(pItem2);
+        CPPUNIT_ASSERT_EQUAL(false, pItem1->GetValue());
+        CPPUNIT_ASSERT_EQUAL(false, pItem2->GetValue());
     }
 
     // Insert a character in the second view.
@@ -1881,14 +1883,16 @@ void SdTiledRenderingTest::testDocumentRepair()
     pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'c', 0);
     Scheduler::ProcessEventsToIdle();
     {
-        std::unique_ptr<SfxPoolItem> pItem1;
-        std::unique_ptr<SfxPoolItem> pItem2;
-        pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem1);
-        pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem2);
-        CPPUNIT_ASSERT(dynamic_cast< const SfxBoolItem* >(pItem1.get()));
-        CPPUNIT_ASSERT(dynamic_cast< const SfxBoolItem* >(pItem2.get()));
-        CPPUNIT_ASSERT_EQUAL(true, dynamic_cast< const SfxBoolItem* >(pItem1.get())->GetValue());
-        CPPUNIT_ASSERT_EQUAL(true, dynamic_cast< const SfxBoolItem* >(pItem2.get())->GetValue());
+        std::unique_ptr<SfxPoolItem> xItem1;
+        std::unique_ptr<SfxPoolItem> xItem2;
+        pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem1);
+        pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem2);
+        const SfxBoolItem* pItem1 = dynamic_cast<const SfxBoolItem*>(xItem1.get());
+        const SfxBoolItem* pItem2 = dynamic_cast<const SfxBoolItem*>(xItem2.get());
+        CPPUNIT_ASSERT(pItem1);
+        CPPUNIT_ASSERT(pItem2);
+        CPPUNIT_ASSERT_EQUAL(true, pItem1->GetValue());
+        CPPUNIT_ASSERT_EQUAL(true, pItem2->GetValue());
     }
 
     comphelper::LibreOfficeKit::setActive(false);
@@ -1903,12 +1907,12 @@ void SdTiledRenderingTest::testLanguageStatus()
     SfxLokHelper::createView();
     SfxViewShell* pView2 = SfxViewShell::Current();
     {
-        std::unique_ptr<SfxPoolItem> pItem1;
-        std::unique_ptr<SfxPoolItem> pItem2;
-        pView1->GetViewFrame()->GetBindings().QueryState(SID_LANGUAGE_STATUS, pItem1);
-        pView2->GetViewFrame()->GetBindings().QueryState(SID_LANGUAGE_STATUS, pItem2);
-        CPPUNIT_ASSERT(dynamic_cast< const SfxStringItem* >(pItem1.get()));
-        CPPUNIT_ASSERT(dynamic_cast< const SfxStringItem* >(pItem2.get()));
+        std::unique_ptr<SfxPoolItem> xItem1;
+        std::unique_ptr<SfxPoolItem> xItem2;
+        pView1->GetViewFrame()->GetBindings().QueryState(SID_LANGUAGE_STATUS, xItem1);
+        pView2->GetViewFrame()->GetBindings().QueryState(SID_LANGUAGE_STATUS, xItem2);
+        CPPUNIT_ASSERT(dynamic_cast< const SfxStringItem* >(xItem1.get()));
+        CPPUNIT_ASSERT(dynamic_cast< const SfxStringItem* >(xItem2.get()));
     }
 
     comphelper::LibreOfficeKit::setActive(false);
@@ -1922,12 +1926,12 @@ void SdTiledRenderingTest::testDefaultView()
     SdXImpressDocument* pXImpressDocument = createDoc("notes-view.odp");
     sd::ViewShell* pView = pXImpressDocument->GetDocShell()->GetViewShell();
     {
-        std::unique_ptr<SfxPoolItem> pItem1;
-        std::unique_ptr<SfxPoolItem> pItem2;
-        pView->GetViewFrame()->GetBindings().QueryState(SID_NORMAL_MULTI_PANE_GUI, pItem1);
-        pView->GetViewFrame()->GetBindings().QueryState(SID_NOTES_MODE, pItem2);
-        const SfxBoolItem* pImpressView = dynamic_cast< const SfxBoolItem* >(pItem1.get());
-        const SfxBoolItem* pNotesView = dynamic_cast< const SfxBoolItem* >(pItem2.get());
+        std::unique_ptr<SfxPoolItem> xItem1;
+        std::unique_ptr<SfxPoolItem> xItem2;
+        pView->GetViewFrame()->GetBindings().QueryState(SID_NORMAL_MULTI_PANE_GUI, xItem1);
+        pView->GetViewFrame()->GetBindings().QueryState(SID_NOTES_MODE, xItem2);
+        const SfxBoolItem* pImpressView = dynamic_cast< const SfxBoolItem* >(xItem1.get());
+        const SfxBoolItem* pNotesView = dynamic_cast< const SfxBoolItem* >(xItem2.get());
         CPPUNIT_ASSERT(pImpressView);
         CPPUNIT_ASSERT(pNotesView);
         CPPUNIT_ASSERT_EQUAL(true, pImpressView->GetValue());
diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx
index 01a5e10eecbd..4bed2db8ed28 100644
--- a/sw/qa/extras/tiledrendering/tiledrendering.cxx
+++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx
@@ -1907,14 +1907,16 @@ void SwTiledRenderingTest::testDocumentRepair()
     int nView2 = SfxLokHelper::getView();
     CPPUNIT_ASSERT(pView1 != pView2);
     {
-        std::unique_ptr<SfxPoolItem> pItem1;
-        std::unique_ptr<SfxPoolItem> pItem2;
-        pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem1);
-        pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem2);
-        CPPUNIT_ASSERT(dynamic_cast< const SfxBoolItem* >(pItem1.get()));
-        CPPUNIT_ASSERT(dynamic_cast< const SfxBoolItem* >(pItem2.get()));
-        CPPUNIT_ASSERT_EQUAL(false, dynamic_cast< const SfxBoolItem* >(pItem1.get())->GetValue());
-        CPPUNIT_ASSERT_EQUAL(false, dynamic_cast< const SfxBoolItem* >(pItem2.get())->GetValue());
+        std::unique_ptr<SfxPoolItem> xItem1;
+        std::unique_ptr<SfxPoolItem> xItem2;
+        pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem1);
+        pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem2);
+        const SfxBoolItem* pItem1 = dynamic_cast<const SfxBoolItem*>(xItem1.get());
+        const SfxBoolItem* pItem2 = dynamic_cast<const SfxBoolItem*>(xItem2.get());
+        CPPUNIT_ASSERT(pItem1);
+        CPPUNIT_ASSERT(pItem2);
+        CPPUNIT_ASSERT_EQUAL(false, pItem1->GetValue());
+        CPPUNIT_ASSERT_EQUAL(false, pItem2->GetValue());
     }
 
     // Insert a character in the second view.
@@ -1923,14 +1925,16 @@ void SwTiledRenderingTest::testDocumentRepair()
     pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'u', 0);
     Scheduler::ProcessEventsToIdle();
     {
-        std::unique_ptr<SfxPoolItem> pItem1;
-        std::unique_ptr<SfxPoolItem> pItem2;
-        pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem1);
-        pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, pItem2);
-        CPPUNIT_ASSERT(dynamic_cast< const SfxBoolItem* >(pItem1.get()));
-        CPPUNIT_ASSERT(dynamic_cast< const SfxBoolItem* >(pItem2.get()));
-        CPPUNIT_ASSERT_EQUAL(true, dynamic_cast< const SfxBoolItem* >(pItem1.get())->GetValue());
-        CPPUNIT_ASSERT_EQUAL(true, dynamic_cast< const SfxBoolItem* >(pItem2.get())->GetValue());
+        std::unique_ptr<SfxPoolItem> xItem1;
+        std::unique_ptr<SfxPoolItem> xItem2;
+        pView1->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem1);
+        pView2->GetViewFrame()->GetBindings().QueryState(SID_DOC_REPAIR, xItem2);
+        const SfxBoolItem* pItem1 = dynamic_cast<const SfxBoolItem*>(xItem1.get());
+        const SfxBoolItem* pItem2 = dynamic_cast<const SfxBoolItem*>(xItem2.get());
+        CPPUNIT_ASSERT(pItem1);
+        CPPUNIT_ASSERT(pItem2);
+        CPPUNIT_ASSERT_EQUAL(true, pItem1->GetValue());
+        CPPUNIT_ASSERT_EQUAL(true, pItem2->GetValue());
     }
 
     comphelper::LibreOfficeKit::setActive(false);
@@ -1942,8 +1946,9 @@ void checkPageHeaderOrFooter(const SfxViewShell* pViewShell, sal_uInt16 nWhich,
 {
     const SfxPoolItem* pState = nullptr;
     pViewShell->GetDispatcher()->QueryState(nWhich, pState);
-    CPPUNIT_ASSERT(dynamic_cast< const SfxBoolItem * >(pState));
-    CPPUNIT_ASSERT_EQUAL(bValue, dynamic_cast< const SfxBoolItem * >(pState)->GetValue());
+    const SfxBoolItem* pBoolItem = dynamic_cast<const SfxBoolItem*>(pState);
+    CPPUNIT_ASSERT(pBoolItem);
+    CPPUNIT_ASSERT_EQUAL(bValue, pBoolItem->GetValue());
 };
 
 }
commit 77da600bf3f0b2279a21680169dc3136bdc2639c
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sat Dec 16 19:11:06 2017 +0000

    coverity#1426167 refactor to be less obscure
    
    no logic change intended
    
    Change-Id: I10ef6038351b2808c2030aa55f05e078d80345ae
    Reviewed-on: https://gerrit.libreoffice.org/46609
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/source/core/layout/atrfrm.cxx b/sw/source/core/layout/atrfrm.cxx
index 2b15de1ffcd3..0673acad36cf 100644
--- a/sw/source/core/layout/atrfrm.cxx
+++ b/sw/source/core/layout/atrfrm.cxx
@@ -2546,58 +2546,61 @@ bool SwFrameFormat::supportsFullDrawingLayerFillAttributeSet() const
 
 void SwFrameFormat::Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew )
 {
-    SwFormatHeader const *pH = nullptr;
-    SwFormatFooter const *pF = nullptr;
-
-    const sal_uInt16 nWhich = pNew ? pNew->Which() : 0;
-
-    if( RES_ATTRSET_CHG == nWhich )
+    if (pNew)
     {
-        static_cast<const SwAttrSetChg*>(pNew)->GetChgSet()->GetItemState(
-            RES_HEADER, false, reinterpret_cast<const SfxPoolItem**>(&pH) );
-        static_cast<const SwAttrSetChg*>(pNew)->GetChgSet()->GetItemState(
-            RES_FOOTER, false, reinterpret_cast<const SfxPoolItem**>(&pF) );
+        SwFormatHeader const *pH = nullptr;
+        SwFormatFooter const *pF = nullptr;
+
+        const sal_uInt16 nWhich = pNew->Which();
 
-        // reset fill information
-        if (maFillAttributes.get() && supportsFullDrawingLayerFillAttributeSet())
+        if( RES_ATTRSET_CHG == nWhich )
         {
-            SfxItemIter aIter(*static_cast<const SwAttrSetChg*>(pNew)->GetChgSet());
-            bool bReset(false);
+            static_cast<const SwAttrSetChg*>(pNew)->GetChgSet()->GetItemState(
+                RES_HEADER, false, reinterpret_cast<const SfxPoolItem**>(&pH) );
+            static_cast<const SwAttrSetChg*>(pNew)->GetChgSet()->GetItemState(
+                RES_FOOTER, false, reinterpret_cast<const SfxPoolItem**>(&pF) );
 
-            for(const SfxPoolItem* pItem = aIter.FirstItem(); pItem && !bReset; pItem = aIter.NextItem())
+            // reset fill information
+            if (maFillAttributes.get() && supportsFullDrawingLayerFillAttributeSet())
             {
-                bReset = !IsInvalidItem(pItem) && pItem->Which() >= XATTR_FILL_FIRST && pItem->Which() <= XATTR_FILL_LAST;
-            }
+                SfxItemIter aIter(*static_cast<const SwAttrSetChg*>(pNew)->GetChgSet());
+                bool bReset(false);
 
-            if(bReset)
-            {
-                maFillAttributes.reset();
+                for(const SfxPoolItem* pItem = aIter.FirstItem(); pItem && !bReset; pItem = aIter.NextItem())
+                {
+                    bReset = !IsInvalidItem(pItem) && pItem->Which() >= XATTR_FILL_FIRST && pItem->Which() <= XATTR_FILL_LAST;
+                }
+
+                if(bReset)
+                {
+                    maFillAttributes.reset();
+                }
             }
         }
-    }
-    else if(RES_FMT_CHG == nWhich)
-    {
-        // reset fill information on format change (e.g. style changed)
-        if (maFillAttributes.get() && supportsFullDrawingLayerFillAttributeSet())
+        else if(RES_FMT_CHG == nWhich)
         {
-            maFillAttributes.reset();
+            // reset fill information on format change (e.g. style changed)
+            if (maFillAttributes.get() && supportsFullDrawingLayerFillAttributeSet())
+            {
+                maFillAttributes.reset();
+            }
         }
-    }
-    else if( RES_HEADER == nWhich )
-        pH = static_cast<const SwFormatHeader*>(pNew);
-    else if( RES_FOOTER == nWhich )
-        pF = static_cast<const SwFormatFooter*>(pNew);
+        else if( RES_HEADER == nWhich )
+            pH = static_cast<const SwFormatHeader*>(pNew);
+        else if( RES_FOOTER == nWhich )
+            pF = static_cast<const SwFormatFooter*>(pNew);
 
-    if( pH && pH->IsActive() && !pH->GetHeaderFormat() )
-    {   //If he doesn't have one, I'll add one
-        SwFrameFormat *pFormat = GetDoc()->getIDocumentLayoutAccess().MakeLayoutFormat( RndStdIds::HEADER, nullptr );
-        const_cast<SwFormatHeader *>(pH)->RegisterToFormat( *pFormat );
-    }
+        if( pH && pH->IsActive() && !pH->GetHeaderFormat() )
+        {   //If he doesn't have one, I'll add one
+            SwFrameFormat *pFormat = GetDoc()->getIDocumentLayoutAccess().MakeLayoutFormat( RndStdIds::HEADER, nullptr );
+            const_cast<SwFormatHeader *>(pH)->RegisterToFormat( *pFormat );
+        }
 
-    if( pF && pF->IsActive() && !pF->GetFooterFormat() )
-    {   //If he doesn't have one, I'll add one
-        SwFrameFormat *pFormat = GetDoc()->getIDocumentLayoutAccess().MakeLayoutFormat( RndStdIds::FOOTER, nullptr );
-        const_cast<SwFormatFooter *>(pF)->RegisterToFormat( *pFormat );
+        if( pF && pF->IsActive() && !pF->GetFooterFormat() )
+        {   //If he doesn't have one, I'll add one
+            SwFrameFormat *pFormat = GetDoc()->getIDocumentLayoutAccess().MakeLayoutFormat( RndStdIds::FOOTER, nullptr );
+            const_cast<SwFormatFooter *>(pF)->RegisterToFormat( *pFormat );
+        }
     }
 
     SwFormat::Modify( pOld, pNew );
commit 9cca2ca9af012ff8f96699febba0dc860768ef3c
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sat Dec 16 19:17:44 2017 +0000

    coverity#1426162 refactor to be more clear
    
    and help out coverity wrt 'Dereference after null check'
    
    Change-Id: I8c07fd0afc686e1c0bfd87d9c8bd1ea341f6e616
    Reviewed-on: https://gerrit.libreoffice.org/46610
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx
index 49ada34c9920..83b68aae6f0b 100644
--- a/sw/source/core/txtnode/ndtxt.cxx
+++ b/sw/source/core/txtnode/ndtxt.cxx
@@ -3571,9 +3571,9 @@ void SwTextNode::Modify( const SfxPoolItem* pOldValue, const SfxPoolItem* pNewVa
     }
 
     // reset fill information
-    if(maFillAttributes.get())
+    if (maFillAttributes.get() && pNewValue)
     {
-        const sal_uInt16 nWhich = pNewValue ? pNewValue->Which() : 0;
+        const sal_uInt16 nWhich = pNewValue->Which();
         bool bReset(RES_FMT_CHG == nWhich); // ..on format change (e.g. style changed)
 
         if(!bReset && RES_ATTRSET_CHG == nWhich) // ..on ItemChange from DrawingLayer FillAttributes


More information about the Libreoffice-commits mailing list