$OpenBSD$ index 4df1c07..048bfeb 100644 --- layout/base/nsPresShell.cpp.orig Fri Feb 20 15:40:37 2015 +++ layout/base/nsPresShell.cpp Fri Feb 20 15:40:37 2015 @@ -2616,10 +2616,11 @@ PresShell::FrameNeedsReflow(nsIFrame *aFrame, IntrinsicDirty aIntrinsicDirty, nsFrameState aBitToAdd) { NS_PRECONDITION(aBitToAdd == NS_FRAME_IS_DIRTY || - aBitToAdd == NS_FRAME_HAS_DIRTY_CHILDREN, + aBitToAdd == NS_FRAME_HAS_DIRTY_CHILDREN || + !aBitToAdd, "Unexpected bits being added"); - NS_PRECONDITION(aIntrinsicDirty != eStyleChange || - aBitToAdd == NS_FRAME_IS_DIRTY, + NS_PRECONDITION(!(aIntrinsicDirty == eStyleChange && + aBitToAdd == NS_FRAME_HAS_DIRTY_CHILDREN), "bits don't correspond to style change reason"); NS_ASSERTION(!mIsReflowing, "can't mark frame dirty during reflow"); @@ -2717,6 +2718,11 @@ PresShell::FrameNeedsReflow(nsIFrame *aFrame, IntrinsicDirty aIntrinsicDirty, } while (stack.Length() != 0); } + // Skip setting dirty bits up the tree if we weren't given a bit to add. + if (!aBitToAdd) { + continue; + } + // Set NS_FRAME_HAS_DIRTY_CHILDREN bits (via nsIFrame::ChildIsDirty) // up the tree until we reach either a frame that's already dirty or // a reflow root.