[Libreoffice-commits] core.git: chart2/source compilerplugins/clang forms/source oox/source sc/source sd/source sfx2/source starmath/source svx/source sw/source

Stephan Bergmann sbergman at redhat.com
Mon Feb 24 08:29:57 PST 2014


 chart2/source/controller/dialogs/tp_RangeChooser.cxx |    4 -
 compilerplugins/clang/implicitboolconversion.cxx     |   52 ++++++++++++++-----
 forms/source/component/Grid.cxx                      |    2 
 oox/source/export/vmlexport.cxx                      |    4 -
 sc/source/core/tool/address.cxx                      |   40 +++++++-------
 sc/source/filter/excel/excrecds.cxx                  |    2 
 sc/source/filter/excel/xepivot.cxx                   |    6 +-
 sc/source/ui/unoobj/cellsuno.cxx                     |    2 
 sc/source/ui/unoobj/docuno.cxx                       |    4 -
 sd/source/ui/unoidl/sddetect.cxx                     |    2 
 sfx2/source/dialog/itemconnect.cxx                   |    4 -
 starmath/source/smdetect.cxx                         |    2 
 svx/source/table/tablecontroller.cxx                 |    8 +-
 sw/source/core/txtnode/thints.cxx                    |    2 
 sw/source/ui/uno/swdetect.cxx                        |    2 
 sw/source/ui/utlui/unotools.cxx                      |    4 -
 16 files changed, 85 insertions(+), 55 deletions(-)

New commits:
commit 76b114f849645f42311c0553b3320532bb26049c
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon Feb 24 17:25:05 2014 +0100

    implicitboolconversion: warn about implicit conversion of call args to bool
    
    ...to be able to find problems like 6e0bdf04add338b7d5b29fc7b3fc9f08cfd5e96f
    "sal_Bool arg of SetUseImagesInMenus was abused to squeeze '2' through it"
    earlier when converting occurrences of sal_Bool to bool.
    
    Restricting this check to function call arguments avoids too much noise while
    hopefully still catching all the relevant problems.
    
    (This check partially overlaps the pointertobool check, so implicit conversions
    from pointers to bool call arguments will now generate two loplugin warnings,
    but that's harmless.)
    
    Change-Id: I0b03b1d1615aaf8bc18e7a84c56fff3ef9903508

diff --git a/chart2/source/controller/dialogs/tp_RangeChooser.cxx b/chart2/source/controller/dialogs/tp_RangeChooser.cxx
index 720e70d..cc2ed79 100644
--- a/chart2/source/controller/dialogs/tp_RangeChooser.cxx
+++ b/chart2/source/controller/dialogs/tp_RangeChooser.cxx
@@ -249,9 +249,9 @@ void RangeChooserTabPage::changeDialogModelAccordingToControls()
 bool RangeChooserTabPage::isValid()
 {
     OUString aRange( m_pED_Range->GetText());
-    sal_Bool bFirstCellAsLabel = ( m_pCB_FirstColumnAsLabel->IsChecked() && !m_pRB_Columns->IsChecked() )
+    bool bFirstCellAsLabel = ( m_pCB_FirstColumnAsLabel->IsChecked() && !m_pRB_Columns->IsChecked() )
         || ( m_pCB_FirstRowAsLabel->IsChecked()    && !m_pRB_Rows->IsChecked() );
-    sal_Bool bHasCategories = ( m_pCB_FirstColumnAsLabel->IsChecked() && m_pRB_Columns->IsChecked() )
+    bool bHasCategories = ( m_pCB_FirstColumnAsLabel->IsChecked() && m_pRB_Columns->IsChecked() )
         || ( m_pCB_FirstRowAsLabel->IsChecked()    && m_pRB_Rows->IsChecked() );
     bool bIsValid = ( aRange.isEmpty() ) ||
         m_rDialogModel.getRangeSelectionHelper()->verifyArguments(
diff --git a/compilerplugins/clang/implicitboolconversion.cxx b/compilerplugins/clang/implicitboolconversion.cxx
index 0327f9f..6503ca8 100644
--- a/compilerplugins/clang/implicitboolconversion.cxx
+++ b/compilerplugins/clang/implicitboolconversion.cxx
@@ -26,6 +26,14 @@ template<> struct std::iterator_traits<ExprIterator> {
     typedef std::random_access_iterator_tag iterator_category;
 };
 
+template<> struct std::iterator_traits<ConstExprIterator> {
+    typedef std::ptrdiff_t difference_type;
+    typedef Expr const * value_type;
+    typedef Expr const ** pointer;
+    typedef Expr const & reference;
+    typedef std::random_access_iterator_tag iterator_category;
+};
+
 namespace {
 
 bool isBool(Expr const * expr, bool allowTypedefs = true) {
@@ -147,11 +155,13 @@ private:
     void reportWarning(ImplicitCastExpr const * expr);
 
     std::stack<std::vector<ImplicitCastExpr const *>> nested;
+    std::stack<CallExpr const *> calls;
     bool externCIntFunctionDefinition = false;
 };
 
 bool ImplicitBoolConversion::TraverseCallExpr(CallExpr * expr) {
     nested.push(std::vector<ImplicitCastExpr const *>());
+    calls.push(expr);
     bool ret = RecursiveASTVisitor::TraverseCallExpr(expr);
     Decl const * d = expr->getCalleeDecl();
     bool ext = false;
@@ -203,6 +213,7 @@ bool ImplicitBoolConversion::TraverseCallExpr(CallExpr * expr) {
             reportWarning(i);
         }
     }
+    calls.pop();
     nested.pop();
     return ret;
 }
@@ -540,21 +551,40 @@ bool ImplicitBoolConversion::VisitImplicitCastExpr(
         } else {
             nested.top().push_back(expr);
         }
-    } else {
-        ExplicitCastExpr const * sub = dyn_cast<ExplicitCastExpr>(
-            expr->getSubExpr()->IgnoreParenImpCasts());
-        if (sub != nullptr
-            && (sub->getSubExpr()->IgnoreParenImpCasts()->getType().IgnoreParens()
-                == expr->getType().IgnoreParens())
-            && isBool(sub->getSubExpr()->IgnoreParenImpCasts()))
+        return true;
+    }
+    ExplicitCastExpr const * sub = dyn_cast<ExplicitCastExpr>(
+        expr->getSubExpr()->IgnoreParenImpCasts());
+    if (sub != nullptr
+        && (sub->getSubExpr()->IgnoreParenImpCasts()->getType().IgnoreParens()
+            == expr->getType().IgnoreParens())
+        && isBool(sub->getSubExpr()->IgnoreParenImpCasts()))
+    {
+        report(
+            DiagnosticsEngine::Warning,
+            "explicit conversion (%0) from %1 to %2 implicitly cast back to %3",
+            expr->getLocStart())
+            << sub->getCastKindName()
+            << sub->getSubExpr()->IgnoreParenImpCasts()->getType()
+            << sub->getType() << expr->getType() << expr->getSourceRange();
+        return true;
+    }
+    if (expr->getType()->isBooleanType() && !isBool(expr->getSubExpr())
+        && !calls.empty())
+    {
+        CallExpr const * call = calls.top();
+        if (std::find_if(
+                call->arg_begin(), call->arg_end(),
+                [expr](Expr const * e) { return expr == e->IgnoreParens(); })
+            != call->arg_end())
         {
             report(
                 DiagnosticsEngine::Warning,
-                "explicit conversion (%0) from %1 to %2 implicitly cast back to %3",
+                "implicit conversion (%0) of call argument from %1 to %2",
                 expr->getLocStart())
-                << sub->getCastKindName()
-                << sub->getSubExpr()->IgnoreParenImpCasts()->getType()
-                << sub->getType() << expr->getType() << expr->getSourceRange();
+                << expr->getCastKindName() << expr->getSubExpr()->getType()
+                << expr->getType() << expr->getSourceRange();
+            return true;
         }
     }
     return true;
diff --git a/forms/source/component/Grid.cxx b/forms/source/component/Grid.cxx
index 1be7b6d..4275ef5 100644
--- a/forms/source/component/Grid.cxx
+++ b/forms/source/component/Grid.cxx
@@ -959,7 +959,7 @@ void OGridControlModel::read(const Reference<XObjectInputStream>& _rxInStream) t
     m_bEnable = _rxInStream->readBoolean();
     if (nAnyMask & TABSTOP)
     {
-        m_aTabStop = makeBoolAny(_rxInStream->readBoolean());
+        m_aTabStop = makeBoolAny(_rxInStream->readBoolean() != 0);
     }
     if (nVersion > 3)
         m_bNavigation = _rxInStream->readBoolean();
diff --git a/oox/source/export/vmlexport.cxx b/oox/source/export/vmlexport.cxx
index 0c35c45..aa4c92a 100644
--- a/oox/source/export/vmlexport.cxx
+++ b/oox/source/export/vmlexport.cxx
@@ -579,7 +579,7 @@ void VMLExport::Commit( EscherPropertyContainer& rProps, const Rectangle& rRect
                     }
 
                     if ( rProps.GetOpt( ESCHER_Prop_fNoFillHitTest, nValue ) )
-                        impl_AddBool( pAttrList, XML_detectmouseclick, nValue );
+                        impl_AddBool( pAttrList, XML_detectmouseclick, nValue != 0 );
 
                     if (rProps.GetOpt(ESCHER_Prop_fillOpacity, nValue))
                         // Partly undo the transformation at the end of EscherPropertyContainer::CreateFillProperties(): VML opacity is 0..1.
@@ -777,7 +777,7 @@ void VMLExport::Commit( EscherPropertyContainer& rProps, const Rectangle& rRect
             case ESCHER_Prop_fNoLineDrawDash:
                 {
                     // See DffPropertyReader::ApplyLineAttributes().
-                    impl_AddBool( m_pShapeAttrList, XML_stroked, it->nPropValue & 8 );
+                    impl_AddBool( m_pShapeAttrList, XML_stroked, (it->nPropValue & 8) != 0 );
                     bAlreadyWritten[ESCHER_Prop_fNoLineDrawDash] = true;
                 }
                 break;
diff --git a/sc/source/core/tool/address.cxx b/sc/source/core/tool/address.cxx
index 710fa29f..adb1d65 100644
--- a/sc/source/core/tool/address.cxx
+++ b/sc/source/core/tool/address.cxx
@@ -1790,16 +1790,16 @@ OUString ScAddress::Format(sal_uInt16 nFlags, const ScDocument* pDoc,
     case formula::FormulaGrammar::CONV_XL_A1:
     case formula::FormulaGrammar::CONV_XL_OOX:
         if( nFlags & SCA_VALID_COL )
-            lcl_a1_append_c ( r, nCol, nFlags & SCA_COL_ABSOLUTE );
+            lcl_a1_append_c ( r, nCol, (nFlags & SCA_COL_ABSOLUTE) != 0 );
         if( nFlags & SCA_VALID_ROW )
-            lcl_a1_append_r ( r, nRow, nFlags & SCA_ROW_ABSOLUTE );
+            lcl_a1_append_r ( r, nRow, (nFlags & SCA_ROW_ABSOLUTE) != 0 );
         break;
 
     case formula::FormulaGrammar::CONV_XL_R1C1:
         if( nFlags & SCA_VALID_ROW )
-            lcl_r1c1_append_r ( r, nRow, nFlags & SCA_ROW_ABSOLUTE, rDetails );
+            lcl_r1c1_append_r ( r, nRow, (nFlags & SCA_ROW_ABSOLUTE) != 0, rDetails );
         if( nFlags & SCA_VALID_COL )
-            lcl_r1c1_append_c ( r, nCol, nFlags & SCA_COL_ABSOLUTE, rDetails );
+            lcl_r1c1_append_c ( r, nCol, (nFlags & SCA_COL_ABSOLUTE) != 0, rDetails );
         break;
     }
     return r;
@@ -1901,28 +1901,28 @@ OUString ScRange::Format( sal_uInt16 nFlags, const ScDocument* pDoc,
         if( aStart.Col() == 0 && aEnd.Col() >= MAXCOL )
         {
             // Full col refs always require 2 rows (2:2)
-            lcl_a1_append_r( r, aStart.Row(), nFlags & SCA_ROW_ABSOLUTE );
+            lcl_a1_append_r( r, aStart.Row(), (nFlags & SCA_ROW_ABSOLUTE) != 0 );
             r += ":";
-            lcl_a1_append_r( r, aEnd.Row(), nFlags & SCA_ROW2_ABSOLUTE );
+            lcl_a1_append_r( r, aEnd.Row(), (nFlags & SCA_ROW2_ABSOLUTE) != 0 );
         }
         else if( aStart.Row() == 0 && aEnd.Row() >= MAXROW )
         {
             // Full row refs always require 2 cols (A:A)
-            lcl_a1_append_c( r, aStart.Col(), nFlags & SCA_COL_ABSOLUTE );
+            lcl_a1_append_c( r, aStart.Col(), (nFlags & SCA_COL_ABSOLUTE) != 0 );
             r += ":";
-            lcl_a1_append_c( r, aEnd.Col(), nFlags & SCA_COL2_ABSOLUTE );
+            lcl_a1_append_c( r, aEnd.Col(), (nFlags & SCA_COL2_ABSOLUTE) != 0 );
         }
         else
         {
-            lcl_a1_append_c ( r, aStart.Col(), nFlags & SCA_COL_ABSOLUTE );
-            lcl_a1_append_r ( r, aStart.Row(), nFlags & SCA_ROW_ABSOLUTE );
+            lcl_a1_append_c ( r, aStart.Col(), (nFlags & SCA_COL_ABSOLUTE) != 0 );
+            lcl_a1_append_r ( r, aStart.Row(), (nFlags & SCA_ROW_ABSOLUTE) != 0 );
             if( aStart.Col() != aEnd.Col() ||
                 absrel_differ( nFlags, SCA_COL_ABSOLUTE ) ||
                 aStart.Row() != aEnd.Row() ||
                 absrel_differ( nFlags, SCA_ROW_ABSOLUTE )) {
                 r += ":";
-                lcl_a1_append_c ( r, aEnd.Col(), nFlags & SCA_COL2_ABSOLUTE );
-                lcl_a1_append_r ( r, aEnd.Row(), nFlags & SCA_ROW2_ABSOLUTE );
+                lcl_a1_append_c ( r, aEnd.Col(), (nFlags & SCA_COL2_ABSOLUTE) != 0 );
+                lcl_a1_append_r ( r, aEnd.Row(), (nFlags & SCA_ROW2_ABSOLUTE) != 0 );
             }
         }
     break;
@@ -1931,33 +1931,33 @@ OUString ScRange::Format( sal_uInt16 nFlags, const ScDocument* pDoc,
         lcl_ScRange_Format_XL_Header( r, *this, nFlags, pDoc, rDetails );
         if( aStart.Col() == 0 && aEnd.Col() >= MAXCOL )
         {
-            lcl_r1c1_append_r( r, aStart.Row(), nFlags & SCA_ROW_ABSOLUTE, rDetails );
+            lcl_r1c1_append_r( r, aStart.Row(), (nFlags & SCA_ROW_ABSOLUTE) != 0, rDetails );
             if( aStart.Row() != aEnd.Row() ||
                 absrel_differ( nFlags, SCA_ROW_ABSOLUTE )) {
                 r += ":";
-                lcl_r1c1_append_r( r, aEnd.Row(), nFlags & SCA_ROW2_ABSOLUTE, rDetails );
+                lcl_r1c1_append_r( r, aEnd.Row(), (nFlags & SCA_ROW2_ABSOLUTE) != 0, rDetails );
             }
         }
         else if( aStart.Row() == 0 && aEnd.Row() >= MAXROW )
         {
-            lcl_r1c1_append_c( r, aStart.Col(), nFlags & SCA_COL_ABSOLUTE, rDetails );
+            lcl_r1c1_append_c( r, aStart.Col(), (nFlags & SCA_COL_ABSOLUTE) != 0, rDetails );
             if( aStart.Col() != aEnd.Col() ||
                 absrel_differ( nFlags, SCA_COL_ABSOLUTE )) {
                 r += ":";
-                lcl_r1c1_append_c( r, aEnd.Col(), nFlags & SCA_COL2_ABSOLUTE, rDetails );
+                lcl_r1c1_append_c( r, aEnd.Col(), (nFlags & SCA_COL2_ABSOLUTE) != 0, rDetails );
             }
         }
         else
         {
-            lcl_r1c1_append_r( r, aStart.Row(), nFlags & SCA_ROW_ABSOLUTE, rDetails );
-            lcl_r1c1_append_c( r, aStart.Col(), nFlags & SCA_COL_ABSOLUTE, rDetails );
+            lcl_r1c1_append_r( r, aStart.Row(), (nFlags & SCA_ROW_ABSOLUTE) != 0, rDetails );
+            lcl_r1c1_append_c( r, aStart.Col(), (nFlags & SCA_COL_ABSOLUTE) != 0, rDetails );
             if( aStart.Col() != aEnd.Col() ||
                 absrel_differ( nFlags, SCA_COL_ABSOLUTE ) ||
                 aStart.Row() != aEnd.Row() ||
                 absrel_differ( nFlags, SCA_ROW_ABSOLUTE )) {
                 r += ":";
-                lcl_r1c1_append_r( r, aEnd.Row(), nFlags & SCA_ROW2_ABSOLUTE, rDetails );
-                lcl_r1c1_append_c( r, aEnd.Col(), nFlags & SCA_COL2_ABSOLUTE, rDetails );
+                lcl_r1c1_append_r( r, aEnd.Row(), (nFlags & SCA_ROW2_ABSOLUTE) != 0, rDetails );
+                lcl_r1c1_append_c( r, aEnd.Col(), (nFlags & SCA_COL2_ABSOLUTE) != 0, rDetails );
             }
         }
     }
diff --git a/sc/source/filter/excel/excrecds.cxx b/sc/source/filter/excel/excrecds.cxx
index a2a246e..6c603d7 100644
--- a/sc/source/filter/excel/excrecds.cxx
+++ b/sc/source/filter/excel/excrecds.cxx
@@ -468,7 +468,7 @@ void XclExpWsbool::SaveXml( XclExpXmlStream& rStrm )
     // OOXTODO: elements XML_tabColor, XML_outlinePr
     rWorksheet->singleElement( XML_pageSetUpPr,
             // OOXTODO: XML_autoPageBreaks,
-            XML_fitToPage,  XclXmlUtils::ToPsz( GetValue() & EXC_WSBOOL_FITTOPAGE ),
+            XML_fitToPage,  XclXmlUtils::ToPsz( (GetValue() & EXC_WSBOOL_FITTOPAGE) != 0 ),
             FSEND );
     rWorksheet->endElement( XML_sheetPr );
 }
diff --git a/sc/source/filter/excel/xepivot.cxx b/sc/source/filter/excel/xepivot.cxx
index 7a46a23..609133a 100644
--- a/sc/source/filter/excel/xepivot.cxx
+++ b/sc/source/filter/excel/xepivot.cxx
@@ -1398,14 +1398,14 @@ void XclExpPivotTable::SaveXml( XclExpXmlStream& rStrm )
             // OOXTODO: XML_showMemberPropertyTips,
             // OOXTODO: XML_showDataTips,
             // OOXTODO: XML_enableWizard,
-            XML_enableDrill,                XclXmlUtils::ToPsz( maPTExtInfo.mnFlags & EXC_SXEX_DRILLDOWN ), // ???
+            XML_enableDrill,                XclXmlUtils::ToPsz( (maPTExtInfo.mnFlags & EXC_SXEX_DRILLDOWN) != 0 ), // ???
             // OOXTODO: XML_enableFieldProperties,      [ SXEx fEnableFieldDialog (maPTExtInfo.mnFlags) ]
             // OOXTODO: XML_preserveFormatting,         [ SXEx fPreserveFormatting (maPTExtInfo.mnFlags) ]
             // OOXTODO: XML_pageWrap,                   [ SXEx cWrapPage (maPTExtInfo.mnFlags) ]
             // OOXTODO: XML_pageOverThenDown,           [ SXEx fAcrossPageLay (maPTExtInfo.mnFlags) ]
             // OOXTODO: XML_subtotalHiddenItems,        [ SXEx fSubtotalHiddenPageItems (maPTExtInfo.mnFlags) ]
-            XML_rowGrandTotals,             XclXmlUtils::ToPsz( maPTInfo.mnFlags & EXC_SXVIEW_ROWGRAND ),
-            XML_colGrandTotals,             XclXmlUtils::ToPsz( maPTInfo.mnFlags & EXC_SXVIEW_COLGRAND ),
+            XML_rowGrandTotals,             XclXmlUtils::ToPsz( (maPTInfo.mnFlags & EXC_SXVIEW_ROWGRAND) != 0 ),
+            XML_colGrandTotals,             XclXmlUtils::ToPsz( (maPTInfo.mnFlags & EXC_SXVIEW_COLGRAND) != 0 ),
             // OOXTODO: XML_fieldPrintTitles,
             // OOXTODO: XML_itemPrintTitles,
             // OOXTODO: XML_mergeItem,
diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx
index b63d368..1ef9455 100644
--- a/sc/source/ui/unoobj/cellsuno.cxx
+++ b/sc/source/ui/unoobj/cellsuno.cxx
@@ -8930,7 +8930,7 @@ void ScTableColumnObj::GetOnePropertyValue( const SfxItemPropertySimpleEntry* pE
         else if ( pEntry->nWID == SC_WID_UNO_MANPAGE )
         {
             ScBreakType nBreak = pDoc->HasColBreak(nCol, nTab);
-            ScUnoHelpFunctions::SetBoolInAny(rAny, (nBreak & BREAK_MANUAL));
+            ScUnoHelpFunctions::SetBoolInAny(rAny, (nBreak & BREAK_MANUAL) != 0);
         }
         else
             ScCellRangeObj::GetOnePropertyValue(pEntry, rAny);
diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index b58b3e6..6184506 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -3165,7 +3165,7 @@ uno::Any SAL_CALL ScTableColumnsObj::getPropertyValue( const OUString& aProperty
     else if ( aNameString.equalsAscii( SC_UNONAME_MANPAGE ) )
     {
         ScBreakType nBreak = pDoc->HasColBreak(nStartCol, nTab);
-        ScUnoHelpFunctions::SetBoolInAny( aAny, (nBreak & BREAK_MANUAL) );
+        ScUnoHelpFunctions::SetBoolInAny( aAny, (nBreak & BREAK_MANUAL) != 0 );
     }
 
     return aAny;
@@ -3444,7 +3444,7 @@ uno::Any SAL_CALL ScTableRowsObj::getPropertyValue( const OUString& aPropertyNam
     else if ( aNameString.equalsAscii( SC_UNONAME_MANPAGE ) )
     {
         ScBreakType nBreak = pDoc->HasRowBreak(nStartRow, nTab);
-        ScUnoHelpFunctions::SetBoolInAny( aAny, (nBreak & BREAK_MANUAL) );
+        ScUnoHelpFunctions::SetBoolInAny( aAny, (nBreak & BREAK_MANUAL) != 0 );
     }
     else if ( aNameString.equalsAscii( SC_UNONAME_CELLBACK ) || aNameString.equalsAscii( SC_UNONAME_CELLTRAN ) )
     {
diff --git a/sd/source/ui/unoidl/sddetect.cxx b/sd/source/ui/unoidl/sddetect.cxx
index 8ade5b9..853c38e 100644
--- a/sd/source/ui/unoidl/sddetect.cxx
+++ b/sd/source/ui/unoidl/sddetect.cxx
@@ -277,7 +277,7 @@ OUString SAL_CALL SdFilterDetect::detect( Sequence< beans::PropertyValue >& lDes
                             OUString sFilterName;
                             if ( pFilter )
                                 sFilterName = pFilter->GetName();
-                            aTypeName = SfxFilter::GetTypeFromStorage( xStorage, pFilter ? pFilter->IsOwnTemplateFormat() : sal_False, &sFilterName );
+                            aTypeName = SfxFilter::GetTypeFromStorage( xStorage, pFilter && pFilter->IsOwnTemplateFormat(), &sFilterName );
                         }
                         catch( const WrappedTargetException& aWrap )
                         {
diff --git a/sfx2/source/dialog/itemconnect.cxx b/sfx2/source/dialog/itemconnect.cxx
index 65ff991..1948ef4 100644
--- a/sfx2/source/dialog/itemconnect.cxx
+++ b/sfx2/source/dialog/itemconnect.cxx
@@ -246,12 +246,12 @@ bool ItemConnectionBase::DoFillItemSet( SfxItemSet& rDestSet, const SfxItemSet&
 
 TriState ItemConnectionBase::GetEnableState( bool bKnown ) const
 {
-    return lclConvertToTriState( bKnown, mnFlags & ITEMCONN_ENABLE_KNOWN, mnFlags & ITEMCONN_DISABLE_UNKNOWN );
+    return lclConvertToTriState( bKnown, (mnFlags & ITEMCONN_ENABLE_KNOWN) != 0, (mnFlags & ITEMCONN_DISABLE_UNKNOWN) != 0 );
 }
 
 TriState ItemConnectionBase::GetShowState( bool bKnown ) const
 {
-    return lclConvertToTriState( bKnown, mnFlags & ITEMCONN_SHOW_KNOWN, mnFlags & ITEMCONN_HIDE_UNKNOWN );
+    return lclConvertToTriState( bKnown, (mnFlags & ITEMCONN_SHOW_KNOWN) != 0, (mnFlags & ITEMCONN_HIDE_UNKNOWN) != 0 );
 }
 
 // ============================================================================
diff --git a/starmath/source/smdetect.cxx b/starmath/source/smdetect.cxx
index cd6a2c7..d25f0dd 100644
--- a/starmath/source/smdetect.cxx
+++ b/starmath/source/smdetect.cxx
@@ -230,7 +230,7 @@ OUString SAL_CALL SmFilterDetect::detect( Sequence< PropertyValue >& lDescriptor
                         OUString aTmpFilterName;
                         if ( pFilter )
                             aTmpFilterName = pFilter->GetName();
-                        aTypeName = SfxFilter::GetTypeFromStorage( xStorage, pFilter ? pFilter->IsAllowedAsTemplate() : sal_False, &aTmpFilterName );
+                        aTypeName = SfxFilter::GetTypeFromStorage( xStorage, pFilter && pFilter->IsAllowedAsTemplate(), &aTmpFilterName );
                     }
                     catch( const WrappedTargetException& aWrap )
                     {
diff --git a/svx/source/table/tablecontroller.cxx b/svx/source/table/tablecontroller.cxx
index 431251c..d70e92f 100644
--- a/svx/source/table/tablecontroller.cxx
+++ b/svx/source/table/tablecontroller.cxx
@@ -2745,10 +2745,10 @@ void lcl_MergeCommonBorderAttr(LinesState& rLinesState, const SvxBoxItem& rCellB
     {
         // current cell is inside the selection
 
-        lcl_MergeBorderOrInnerLine(rLinesState, rCellBoxItem.GetTop(), BOX_LINE_TOP, VALID_TOP, nCellFlags & CELL_TOP);
-        lcl_MergeBorderOrInnerLine(rLinesState, rCellBoxItem.GetBottom(), BOX_LINE_BOTTOM, VALID_BOTTOM, nCellFlags & CELL_BOTTOM);
-        lcl_MergeBorderOrInnerLine(rLinesState, rCellBoxItem.GetLeft(), BOX_LINE_LEFT, VALID_LEFT, nCellFlags & CELL_LEFT);
-        lcl_MergeBorderOrInnerLine(rLinesState, rCellBoxItem.GetRight(), BOX_LINE_RIGHT, VALID_RIGHT, nCellFlags & CELL_RIGHT);
+        lcl_MergeBorderOrInnerLine(rLinesState, rCellBoxItem.GetTop(), BOX_LINE_TOP, VALID_TOP, (nCellFlags & CELL_TOP) != 0);
+        lcl_MergeBorderOrInnerLine(rLinesState, rCellBoxItem.GetBottom(), BOX_LINE_BOTTOM, VALID_BOTTOM, (nCellFlags & CELL_BOTTOM) != 0);
+        lcl_MergeBorderOrInnerLine(rLinesState, rCellBoxItem.GetLeft(), BOX_LINE_LEFT, VALID_LEFT, (nCellFlags & CELL_LEFT) != 0);
+        lcl_MergeBorderOrInnerLine(rLinesState, rCellBoxItem.GetRight(), BOX_LINE_RIGHT, VALID_RIGHT, (nCellFlags & CELL_RIGHT) != 0);
 
         lcl_MergeDistance(rLinesState, BOX_LINE_TOP, rCellBoxItem.GetDistance(BOX_LINE_TOP));
         lcl_MergeDistance(rLinesState, BOX_LINE_BOTTOM, rCellBoxItem.GetDistance(BOX_LINE_BOTTOM));
diff --git a/sw/source/core/txtnode/thints.cxx b/sw/source/core/txtnode/thints.cxx
index 3d45dfa..6a8da0e 100644
--- a/sw/source/core/txtnode/thints.cxx
+++ b/sw/source/core/txtnode/thints.cxx
@@ -1089,7 +1089,7 @@ SwTxtAttr* MakeTxtAttr(
     case RES_TXTATR_META:
     case RES_TXTATR_METAFIELD:
         pNew = SwTxtMeta::CreateTxtMeta( rDoc.GetMetaFieldManager(), pTxtNode,
-                static_cast<SwFmtMeta&>(rNew), nStt, nEnd, bIsCopy );
+                static_cast<SwFmtMeta&>(rNew), nStt, nEnd, bIsCopy == COPY );
         break;
     default:
         OSL_ENSURE(RES_TXTATR_AUTOFMT == rNew.Which(), "unknown attribute");
diff --git a/sw/source/ui/uno/swdetect.cxx b/sw/source/ui/uno/swdetect.cxx
index 35bcd8f..9d03a104 100644
--- a/sw/source/ui/uno/swdetect.cxx
+++ b/sw/source/ui/uno/swdetect.cxx
@@ -236,7 +236,7 @@ OUString SAL_CALL SwFilterDetect::detect( Sequence< PropertyValue >& lDescriptor
                                 aTypeName = pPreFilter->GetTypeName();
                             }
 
-                            aTypeName = SfxFilter::GetTypeFromStorage( xStorage, pPreFilter ? pPreFilter->IsOwnTemplateFormat() : sal_False, &aFilterName );
+                            aTypeName = SfxFilter::GetTypeFromStorage( xStorage, pPreFilter && pPreFilter->IsOwnTemplateFormat(), &aFilterName );
                         }
                         catch (const WrappedTargetException& aWrap)
                         {
diff --git a/sw/source/ui/utlui/unotools.cxx b/sw/source/ui/utlui/unotools.cxx
index 45ca783..8273264 100644
--- a/sw/source/ui/utlui/unotools.cxx
+++ b/sw/source/ui/utlui/unotools.cxx
@@ -273,7 +273,7 @@ IMPL_LINK( SwOneExampleFrame, TimeoutHdl, Timer*, pTimer )
             }
 
             // set onlinelayout property after setting the zoom
-            disableScrollBars(xViewProps, nStyleFlags&EX_SHOW_ONLINE_LAYOUT);
+            disableScrollBars(xViewProps, (nStyleFlags&EX_SHOW_ONLINE_LAYOUT) != 0);
             bIsInitialized = sal_True;
         }
 
@@ -369,7 +369,7 @@ IMPL_LINK( SwOneExampleFrame, TimeoutHdl, Timer*, pTimer )
         xWin->setPosSize( 0, 0, aWinSize.Width(), aWinSize.Height(), awt::PosSize::SIZE );
 
         // can only be done here - the SFX changes the ScrollBar values
-        disableScrollBars(xViewProps, nStyleFlags&EX_SHOW_ONLINE_LAYOUT);
+        disableScrollBars(xViewProps, (nStyleFlags&EX_SHOW_ONLINE_LAYOUT) != 0);
 
         if (aInitializedLink.IsSet())
             aInitializedLink.Call(this);


More information about the Libreoffice-commits mailing list