From b0b13b87198018be6f5f58ca8459a952f5b18978 Mon Sep 17 00:00:00 2001 From: Moonchild Date: Fri, 2 Aug 2024 10:31:21 +0200 Subject: [PATCH] Issue #1925 - Convert NS_SIDE_IS_VERTICAL to a constexpr function. --- gfx/2d/Types.h | 5 +++++ layout/base/nsCSSRendering.cpp | 6 ++---- layout/generic/nsFrame.cpp | 2 +- layout/style/nsStyleConsts.h | 1 - layout/style/nsStyleCoord.cpp | 6 +++--- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/gfx/2d/Types.h b/gfx/2d/Types.h index 923baf03e0..7626987a87 100644 --- a/gfx/2d/Types.h +++ b/gfx/2d/Types.h @@ -474,6 +474,11 @@ constexpr HalfCorner FullToHalfCorner(Corner aCorner, bool aIsVertical) return HalfCorner(aCorner * 2 + aIsVertical); } +constexpr bool SideIsVertical(Side aSide) +{ + return aSide % 2; +} + } // namespace mozilla #endif /* MOZILLA_GFX_TYPES_H_ */ diff --git a/layout/base/nsCSSRendering.cpp b/layout/base/nsCSSRendering.cpp index a6cfbbe16c..c683a19605 100644 --- a/layout/base/nsCSSRendering.cpp +++ b/layout/base/nsCSSRendering.cpp @@ -3920,10 +3920,8 @@ DrawBorderImage(nsPresContext* aPresContext, nsMargin border; NS_FOR_CSS_SIDES(s) { nsStyleCoord coord = aStyleBorder.mBorderImageSlice.Get(s); - int32_t imgDimension = NS_SIDE_IS_VERTICAL(s) - ? imageSize.width : imageSize.height; - nscoord borderDimension = NS_SIDE_IS_VERTICAL(s) - ? borderImgArea.width : borderImgArea.height; + int32_t imgDimension = SideIsVertical(s) ? imageSize.width : imageSize.height; + nscoord borderDimension = SideIsVertical(s) ? borderImgArea.width : borderImgArea.height; double value; switch (coord.GetUnit()) { case eStyleUnit_Percent: diff --git a/layout/generic/nsFrame.cpp b/layout/generic/nsFrame.cpp index 4e1c4ff027..451a1ff7cd 100644 --- a/layout/generic/nsFrame.cpp +++ b/layout/generic/nsFrame.cpp @@ -1287,7 +1287,7 @@ nsIFrame::ComputeBorderRadii(const nsStyleCorners& aBorderRadius, uint32_t hc1 = NS_SIDE_TO_HALF_CORNER(side, false, true); uint32_t hc2 = NS_SIDE_TO_HALF_CORNER(side, true, true); nscoord length = - NS_SIDE_IS_VERTICAL(side) ? aBorderArea.height : aBorderArea.width; + SideIsVertical(side) ? aBorderArea.height : aBorderArea.width; nscoord sum = aRadii[hc1] + aRadii[hc2]; if (sum) haveRadius = true; diff --git a/layout/style/nsStyleConsts.h b/layout/style/nsStyleConsts.h index ca64bf1d5f..879b77269d 100644 --- a/layout/style/nsStyleConsts.h +++ b/layout/style/nsStyleConsts.h @@ -20,7 +20,6 @@ namespace mozilla { // nsStyleCoord.cpp. // Arguments must not have side effects. -#define NS_SIDE_IS_VERTICAL(side_) ((side_) % 2) #define NS_SIDE_TO_FULL_CORNER(side_, second_) \ (((side_) + !!(second_)) % 4) #define NS_SIDE_TO_HALF_CORNER(side_, second_, parallel_) \ diff --git a/layout/style/nsStyleCoord.cpp b/layout/style/nsStyleCoord.cpp index 7e233949e9..ba673201e3 100644 --- a/layout/style/nsStyleCoord.cpp +++ b/layout/style/nsStyleCoord.cpp @@ -328,10 +328,10 @@ void nsStyleCorners::Reset() } } -// Validation of NS_SIDE_IS_VERTICAL. +// Validation of SideIsVertical. #define CASE(side, result) \ - static_assert(NS_SIDE_IS_VERTICAL(side) == result, \ - "NS_SIDE_IS_VERTICAL is wrong") + static_assert(SideIsVertical(side) == result, \ + "SideIsVertical is wrong") CASE(eSideTop, false); CASE(eSideRight, true); CASE(eSideBottom, false);