diff options
author | Mats Palmgren <mats@mozilla.com> | 2019-11-29 00:19:03 +0100 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-11-29 00:19:03 +0100 |
commit | 7070dddb4b8738ca983a12bc6e22b6e7418b2428 (patch) | |
tree | 405092afe285dcdf7a6844db2100369ec032f362 /layout/generic | |
parent | ea03043bde6f3cef4fb20cd7ccb0a43339cc3cd2 (diff) | |
download | UXP-7070dddb4b8738ca983a12bc6e22b6e7418b2428.tar UXP-7070dddb4b8738ca983a12bc6e22b6e7418b2428.tar.gz UXP-7070dddb4b8738ca983a12bc6e22b6e7418b2428.tar.lz UXP-7070dddb4b8738ca983a12bc6e22b6e7418b2428.tar.xz UXP-7070dddb4b8738ca983a12bc6e22b6e7418b2428.zip |
Simplify the overflow child frame reparenting in
nsInlineFrame::DestroyFrom.
Diffstat (limited to 'layout/generic')
-rw-r--r-- | layout/generic/nsInlineFrame.cpp | 6 | ||||
-rw-r--r-- | layout/generic/nsInlineFrame.h | 3 |
2 files changed, 2 insertions, 7 deletions
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. |