From f507d2cdbce6dc7f873520c965ab7e6148c527ce Mon Sep 17 00:00:00 2001 From: Moonchild Date: Fri, 2 Aug 2024 08:30:23 +0200 Subject: [PATCH] Issue #1925 - Convert NS_HALF_CORNER_IS_X to a constexpr function. --- gfx/2d/Types.h | 5 +++++ layout/generic/nsFrame.cpp | 2 +- layout/style/nsStyleConsts.h | 1 - layout/style/nsStyleCoord.cpp | 11 ++++++----- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/gfx/2d/Types.h b/gfx/2d/Types.h index 09458ee002..ebd72f2391 100644 --- a/gfx/2d/Types.h +++ b/gfx/2d/Types.h @@ -459,6 +459,11 @@ static inline mozilla::HalfCorner operator++(mozilla::HalfCorner& aHalfCorner) { return aHalfCorner; } +constexpr bool HalfCornerIsX(HalfCorner aHalfCorner) +{ + return !(aHalfCorner % 2); +} + } // namespace mozilla #endif /* MOZILLA_GFX_TYPES_H_ */ diff --git a/layout/generic/nsFrame.cpp b/layout/generic/nsFrame.cpp index f567bb3b7e..4e1c4ff027 100644 --- a/layout/generic/nsFrame.cpp +++ b/layout/generic/nsFrame.cpp @@ -1237,7 +1237,7 @@ nsIFrame::ComputeBorderRadii(const nsStyleCorners& aBorderRadius, NS_FOR_CSS_HALF_CORNERS(i) { const nsStyleCoord c = aBorderRadius.Get(i); nscoord axis = - NS_HALF_CORNER_IS_X(i) ? aFrameSize.width : aFrameSize.height; + HalfCornerIsX(i) ? aFrameSize.width : aFrameSize.height; if (c.IsCoordPercentCalcUnit()) { aRadii[i] = nsRuleNode::ComputeCoordPercentCalc(c, axis); diff --git a/layout/style/nsStyleConsts.h b/layout/style/nsStyleConsts.h index dba65d74e7..8ed98de230 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_HALF_CORNER_IS_X(var_) (!((var_)%2)) #define NS_HALF_TO_FULL_CORNER(var_) ((var_)/2) #define NS_FULL_TO_HALF_CORNER(var_, vert_) ((var_)*2 + !!(vert_)) diff --git a/layout/style/nsStyleCoord.cpp b/layout/style/nsStyleCoord.cpp index 8db41f3ac0..1c1b100d1b 100644 --- a/layout/style/nsStyleCoord.cpp +++ b/layout/style/nsStyleCoord.cpp @@ -328,9 +328,9 @@ void nsStyleCorners::Reset() } } -// Validation of NS_SIDE_IS_VERTICAL and NS_HALF_CORNER_IS_X. +// Validation of NS_SIDE_IS_VERTICAL. #define CASE(side, result) \ - static_assert(NS_SIDE_IS_VERTICAL(side) == result, \ + static_assert(NS_SIDE_IS_VERTICAL(side) == result, \ "NS_SIDE_IS_VERTICAL is wrong") CASE(eSideTop, false); CASE(eSideRight, true); @@ -338,9 +338,10 @@ CASE(eSideBottom, false); CASE(eSideLeft, true); #undef CASE +// Validation of HalfCornerIsX. #define CASE(corner, result) \ - static_assert(NS_HALF_CORNER_IS_X(corner) == result, \ - "NS_HALF_CORNER_IS_X is wrong") + static_assert(HalfCornerIsX(corner) == result, \ + "HalfCornerIsX is wrong") CASE(eCornerTopLeftX, true); CASE(eCornerTopLeftY, false); CASE(eCornerTopRightX, true); @@ -353,7 +354,7 @@ CASE(eCornerBottomLeftY, false); // Validation of NS_HALF_TO_FULL_CORNER. #define CASE(corner, result) \ - static_assert(NS_HALF_TO_FULL_CORNER(corner) == result, \ + static_assert(NS_HALF_TO_FULL_CORNER(corner) == result, \ "NS_HALF_TO_FULL_CORNER is wrong") CASE(eCornerTopLeftX, eCornerTopLeft); CASE(eCornerTopLeftY, eCornerTopLeft);