[Libreoffice-commits] core.git: sw/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Mon Oct 22 08:39:38 UTC 2018


 sw/source/core/txtnode/ndtxt.cxx |   20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

New commits:
commit cd9aa5bc508244082b4baf4a3094875bf2c6f992
Author:     Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Sat Oct 20 10:38:32 2018 +0200
Commit:     Michael Stahl <Michael.Stahl at cib.de>
CommitDate: Mon Oct 22 10:39:15 2018 +0200

    tdf#120703 (PVS): redundant comparisons, dynamic_cast<T&> in dtor
    
    V560 A part of conditional expression is always true: (nHintStart >= nStartIdx)
    
    V509 The 'dynamic_cast' operator should be located inside the try..catch block,
         as it could potentially generate an exception. Raising exception inside
         the destructor is illegal.
    
    V560 A part of conditional expression is always true: pHint.
    
    Change-Id: Icfb9a2961f5db034fd19f4665fe3ceaae6232350
    Reviewed-on: https://gerrit.libreoffice.org/62039
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <Michael.Stahl at cib.de>

diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx
index 30bfd26ac35f..cb3bfa5686b7 100644
--- a/sw/source/core/txtnode/ndtxt.cxx
+++ b/sw/source/core/txtnode/ndtxt.cxx
@@ -2706,8 +2706,7 @@ void SwTextNode::EraseText(const SwIndex &rIdx, const sal_Int32 nCount,
         {
                     // attribute with neither end nor CH_TXTATR?
             assert(pHt->HasDummyChar());
-            if (isTXTATR(nWhich) &&
-                (nHintStart >= nStartIdx) && (nHintStart < nEndIdx))
+            if (isTXTATR(nWhich) && (nHintStart < nEndIdx))
             {
                 m_pSwpHints->DeleteAtPos(i);
                 DestroyAttr( pHt );
@@ -5082,10 +5081,17 @@ namespace {
             }
             // #i70748#
             // #i105562#
-            else if ( mrTextNode.GetpSwAttrSet() &&
-                      dynamic_cast<const SfxUInt16Item &>(mrTextNode.GetAttr( RES_PARATR_OUTLINELEVEL, false )).GetValue() > 0 )
+            else
             {
-                mrTextNode.SetEmptyListStyleDueToSetOutlineLevelAttr();
+                assert(!mrTextNode.GetpSwAttrSet()
+                       || dynamic_cast<const SfxUInt16Item*>(
+                              &mrTextNode.GetAttr(RES_PARATR_OUTLINELEVEL, false)));
+                if (mrTextNode.GetpSwAttrSet()
+                    && static_cast<const SfxUInt16Item&>(
+                           mrTextNode.GetAttr(RES_PARATR_OUTLINELEVEL, false)).GetValue() > 0)
+                {
+                    mrTextNode.SetEmptyListStyleDueToSetOutlineLevelAttr();
+                }
             }
         }
 
@@ -5319,9 +5325,9 @@ void SwTextNode::SwClientNotify( const SwModify& rModify, const SfxHint& rHint )
             SetXParagraph(css::uno::Reference<css::text::XTextContent>(nullptr));
         }
     }
-    else if (auto pHint = dynamic_cast<const SwAttrHint*>(&rHint))
+    else if (dynamic_cast<const SwAttrHint*>(&rHint))
     {
-        if ( pHint && &rModify == GetRegisteredIn() )
+        if (&rModify == GetRegisteredIn())
             ChkCondColl();
     }
 }


More information about the Libreoffice-commits mailing list