Bug 1320014 Part 9 - Convert NS_HALF_CORNER_IS_X to a constexpr function. r=mats

MozReview-Commit-ID: 3d2opSIjAUc

--HG--
extra : rebase_source : 03e55f0458dd305fa782ca1e46c32069045e86e9
This commit is contained in:
Ting-Yu Lin 2017-01-05 14:30:14 +08:00
parent df030594f6
commit 229d433359
4 changed files with 9 additions and 4 deletions

View File

@ -469,6 +469,11 @@ static inline HalfCorner operator++(HalfCorner& aHalfCorner) {
return aHalfCorner;
}
constexpr bool HalfCornerIsX(HalfCorner aHalfCorner)
{
return !(aHalfCorner % 2);
}
} // namespace mozilla
#endif /* MOZILLA_GFX_TYPES_H_ */

View File

@ -1256,7 +1256,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);

View File

@ -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_))

View File

@ -340,9 +340,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);