diff --git a/layout/generic/nsInlineFrame.cpp b/layout/generic/nsInlineFrame.cpp index 54d93c85a..5a04f0cd1 100644 --- a/layout/generic/nsInlineFrame.cpp +++ b/layout/generic/nsInlineFrame.cpp @@ -199,8 +199,7 @@ nsInlineFrame::DestroyFrom(nsIFrame* aDestructRoot) // Fixup the parent pointers for any child frames on the OverflowList. // nsIFrame::DestroyFrom depends on that to find the sticky scroll // container (an ancestor). - nsIFrame* lineContainer = nsLayoutUtils::FindNearestBlockAncestor(this); - DrainSelfOverflowListInternal(eForDestroy, lineContainer); + overflowFrames->ApplySetParent(this); } nsContainerFrame::DestroyFrom(aDestructRoot); } @@ -508,8 +507,7 @@ nsInlineFrame::DrainSelfOverflowListInternal(DrainFlags aFlags, if (aLineContainer && aLineContainer->GetPrevContinuation()) { ReparentFloatsForInlineChild(aLineContainer, firstChild, true); } - const bool doReparentSC = - (aFlags & eInFirstLine) && !(aFlags & eForDestroy); + const bool doReparentSC = (aFlags & eInFirstLine); RestyleManagerHandle restyleManager = PresContext()->RestyleManager(); for (nsIFrame* f = firstChild; f; f = f->GetNextSibling()) { f->SetParent(this); diff --git a/layout/generic/nsInlineFrame.h b/layout/generic/nsInlineFrame.h index 00f89065c..a9679e93f 100644 --- a/layout/generic/nsInlineFrame.h +++ b/layout/generic/nsInlineFrame.h @@ -175,9 +175,6 @@ private: enum DrainFlags { eDontReparentFrames = 1, // skip reparenting the overflow list frames eInFirstLine = 2, // the request is for an inline descendant of a nsFirstLineFrame - eForDestroy = 4, // the request is from DestroyFrom; in this case we do the - // minimal work required since the frame is about to be - // destroyed (just fixup parent pointers) }; /** * Move any frames on our overflow list to the end of our principal list.