Fix two bugs found by /analyze tool The first one is about bitwise AND on zero, the result would always be zero. The second one is about using wrong bitmasks, the result would cause branches never get executed. BUG=chromium:613623, chromium:427616 Review-Url: https://codereview.chromium.org/2016243003
diff --git a/xfa/fwl/theme/cfwl_checkboxtp.cpp b/xfa/fwl/theme/cfwl_checkboxtp.cpp index 9a10c60..23cc21f 100644 --- a/xfa/fwl/theme/cfwl_checkboxtp.cpp +++ b/xfa/fwl/theme/cfwl_checkboxtp.cpp
@@ -166,22 +166,21 @@ CFX_RectF rtSign(*pRtBox); rtSign.Deflate(kSignMargin, kSignMargin); uint32_t dwColor = m_pThemeData->clrSignCheck; - FX_BOOL bCheck = TRUE; + bool bCheck = true; if ((dwStates & CFWL_PartState_Disabled) && (dwStates & CFWL_PartState_Checked)) { dwColor = m_pThemeData->clrSignBorderDisable; } else if (dwStates & CFWL_PartState_Neutral) { - if (dwStates & CFWL_PartState_Normal) { - bCheck = FALSE; - dwColor = m_pThemeData->clrSignNeutralNormal; - } else if (dwStates & CFWL_PartState_Hovered) { - bCheck = FALSE; + if (dwStates & CFWL_PartState_Hovered) { dwColor = m_pThemeData->clrSignNeutralHover; } else if (dwStates & CFWL_PartState_Pressed) { - bCheck = FALSE, dwColor = m_pThemeData->clrSignNeutralPressed; + dwColor = m_pThemeData->clrSignNeutralPressed; } else if (dwStates & CFWL_PartState_Disabled) { - bCheck = FALSE, dwColor = m_pThemeData->clrSignBorderDisable; + dwColor = m_pThemeData->clrSignBorderDisable; + } else { + dwColor = m_pThemeData->clrSignNeutralNormal; } + bCheck = false; } if (bCheck) { uint32_t dwStyle = pWidget->GetStylesEx();
diff --git a/xfa/fwl/theme/cfwl_formtp.cpp b/xfa/fwl/theme/cfwl_formtp.cpp index 971e738..0333759 100644 --- a/xfa/fwl/theme/cfwl_formtp.cpp +++ b/xfa/fwl/theme/cfwl_formtp.cpp
@@ -78,25 +78,17 @@ if (!pParams) return FALSE; int32_t iActive = 0; - if (pParams->m_dwStates & CFWL_PartState_Inactive) { + if (pParams->m_dwStates & CFWL_PartState_Inactive) iActive = 1; - } + FWLTHEME_STATE eState = FWLTHEME_STATE_Normal; - switch (pParams->m_dwStates & 0x03) { - case CFWL_PartState_Hovered: { - eState = FWLTHEME_STATE_Hover; - break; - } - case CFWL_PartState_Pressed: { - eState = FWLTHEME_STATE_Pressed; - break; - } - case CFWL_PartState_Disabled: { - eState = FWLTHEME_STATE_Disabale; - break; - } - default: {} - } + if (pParams->m_dwStates & CFWL_PartState_Hovered) + eState = FWLTHEME_STATE_Hover; + else if (pParams->m_dwStates & CFWL_PartState_Pressed) + eState = FWLTHEME_STATE_Pressed; + else if (pParams->m_dwStates & CFWL_PartState_Disabled) + eState = FWLTHEME_STATE_Disabale; + switch (pParams->m_iPart) { case CFWL_Part::Border: { DrawFormBorder(pParams->m_pGraphics, &pParams->m_rtPart, eState,