diff --git a/layout/base/crashtests/1729578.html b/layout/base/crashtests/1729578.html new file mode 100644 index 000000000000..27dd8a140fe3 --- /dev/null +++ b/layout/base/crashtests/1729578.html @@ -0,0 +1,26 @@ + + + +
    +
  1. +
+x +
+
;MLCI|=oV;nvAP*o7U
+x diff --git a/layout/base/crashtests/crashtests.list b/layout/base/crashtests/crashtests.list index 4e5e8132ba3f..3b031b4469d3 100644 --- a/layout/base/crashtests/crashtests.list +++ b/layout/base/crashtests/crashtests.list @@ -560,3 +560,4 @@ load 1685146.html load 1689912.html load 1690163.html load 1723200.html +load 1729578.html diff --git a/layout/generic/nsTextFrame.cpp b/layout/generic/nsTextFrame.cpp index f2b7ed65f588..100cdd432244 100644 --- a/layout/generic/nsTextFrame.cpp +++ b/layout/generic/nsTextFrame.cpp @@ -4493,8 +4493,11 @@ class nsContinuingTextFrame final : public nsTextFrame { nsIFrame* FirstInFlow() const final; nsTextFrame* FirstContinuation() const final { - MOZ_DIAGNOSTIC_ASSERT(mFirstContinuation || !mPrevContinuation, - "mFirstContinuation unexpectedly null!"); + // If we have a prev-continuation pointer, then our first-continuation + // must be the same as that frame's. + MOZ_ASSERT((!mPrevContinuation && !mFirstContinuation) || + (mPrevContinuation && + mPrevContinuation->FirstContinuation() == mFirstContinuation)); return mFirstContinuation; };