Bug 1320014 Part 4 - Remove eNumCorners and rewrite NS_FOR_CSS_CORNERS. r=mats

Also, change Corner's operator++ from postfix to prefix version.

MozReview-Commit-ID: CpBXOZmQtJ9

--HG--
extra : rebase_source : c8bacec1de52109a17a9cb18687094cef56387c0
This commit is contained in:
Ting-Yu Lin 2017-01-04 17:41:49 +08:00
parent 7577c40539
commit f3987ac8db
2 changed files with 14 additions and 15 deletions

View File

@ -421,26 +421,28 @@ enum Corner {
eCornerTopLeft = 0,
eCornerTopRight = 1,
eCornerBottomRight = 2,
eCornerBottomLeft = 3,
eNumCorners = 4
eCornerBottomLeft = 3
};
#define NS_CORNER_TOP_LEFT mozilla::eCornerTopLeft
#define NS_CORNER_TOP_RIGHT mozilla::eCornerTopRight
#define NS_CORNER_BOTTOM_RIGHT mozilla::eCornerBottomRight
#define NS_CORNER_BOTTOM_LEFT mozilla::eCornerBottomLeft
#define NS_NUM_CORNERS mozilla::eNumCorners
#define NS_FOR_CSS_CORNERS(var_) \
for (mozilla::Corner var_ = NS_CORNER_TOP_LEFT; \
var_ <= NS_CORNER_BOTTOM_LEFT; \
var_++)
// Creates a for loop that walks over the four mozilla::Corner values. This
// implementation uses the same technique as NS_FOR_CSS_SIDES.
#define NS_FOR_CSS_CORNERS(var_) \
int32_t MOZ_CONCAT(var_,__LINE__) = mozilla::eCornerTopLeft; \
for (mozilla::Corner var_; \
MOZ_CONCAT(var_,__LINE__) <= mozilla::eCornerBottomLeft && \
(var_ = mozilla::Corner(MOZ_CONCAT(var_,__LINE__)), true); \
++MOZ_CONCAT(var_,__LINE__))
static inline Corner operator++(Corner& corner, int) {
MOZ_ASSERT(corner >= NS_CORNER_TOP_LEFT &&
corner < NS_NUM_CORNERS, "Out of range corner");
corner = Corner(corner + 1);
return corner;
static inline Corner operator++(Corner& aCorner) {
MOZ_ASSERT(aCorner >= eCornerTopLeft && aCorner <= eCornerBottomLeft,
"Out of range corner!");
aCorner = Corner(aCorner + 1);
return aCorner;
}
} // namespace mozilla

View File

@ -51,9 +51,6 @@ struct gfxRect :
case NS_CORNER_TOP_RIGHT: return TopRight();
case NS_CORNER_BOTTOM_RIGHT: return BottomRight();
case NS_CORNER_BOTTOM_LEFT: return BottomLeft();
default:
NS_ERROR("Invalid corner!");
break;
}
return gfxPoint(0.0, 0.0);
}