summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMats Palmgren <mats@mozilla.com>2019-11-29 00:19:03 +0100
committerwolfbeast <mcwerewolf@wolfbeast.com>2019-11-29 00:19:03 +0100
commit7070dddb4b8738ca983a12bc6e22b6e7418b2428 (patch)
tree405092afe285dcdf7a6844db2100369ec032f362
parentea03043bde6f3cef4fb20cd7ccb0a43339cc3cd2 (diff)
downloadUXP-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.
-rw-r--r--layout/generic/nsInlineFrame.cpp6
-rw-r--r--layout/generic/nsInlineFrame.h3
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.