Bug 1471437 - Part 2: Reset mPaintRect only when the new building rect is different, and update mPaintRectValid when it is. r=mattwoodrow
MozReview-Commit-ID: 5djSr7eNk8W
--- a/layout/painting/nsDisplayList.h
+++ b/layout/painting/nsDisplayList.h
@@ -2636,17 +2636,23 @@ public:
/**
* Returns the building rectangle used by nsDisplayListBuilder when
* this item was constructed.
*/
const nsRect& GetBuildingRect() const { return mBuildingRect; }
void SetBuildingRect(const nsRect& aBuildingRect)
{
+ if (aBuildingRect == mBuildingRect) {
+ // Avoid unnecessary paint rect recompution when the
+ // building rect is staying the same.
+ return;
+ }
mPaintRect = mBuildingRect = aBuildingRect;
+ mPaintRectValid = false;
}
void SetPaintRect(const nsRect& aPaintRect) {
mPaintRect = aPaintRect;
mPaintRectValid = true;
}
bool HasPaintRect() const { return mPaintRectValid; }