summaryrefslogtreecommitdiffstats
path: root/layout/generic/nsBlockFrame.cpp
diff options
context:
space:
mode:
authorMatt A. Tobin <email@mattatobin.com>2020-04-17 06:07:51 -0400
committerMatt A. Tobin <email@mattatobin.com>2020-04-17 06:07:51 -0400
commit0c99ad16fbb5c3b90ee140235159f9a0ee72397b (patch)
treea8ac891f2d7dd3864bd461feaebafd06988e21e3 /layout/generic/nsBlockFrame.cpp
parent2bcd8923f776e1c7bc716bd42c7e7912c4fe8709 (diff)
downloadUXP-0c99ad16fbb5c3b90ee140235159f9a0ee72397b.tar
UXP-0c99ad16fbb5c3b90ee140235159f9a0ee72397b.tar.gz
UXP-0c99ad16fbb5c3b90ee140235159f9a0ee72397b.tar.lz
UXP-0c99ad16fbb5c3b90ee140235159f9a0ee72397b.tar.xz
UXP-0c99ad16fbb5c3b90ee140235159f9a0ee72397b.zip
Bug 1368547 - Remove nsFrameManagerBase::mPlaceholderMap and instead store the placeholder on a frame property on the out-of-flow
Tag #1375
Diffstat (limited to 'layout/generic/nsBlockFrame.cpp')
-rw-r--r--layout/generic/nsBlockFrame.cpp15
1 files changed, 6 insertions, 9 deletions
diff --git a/layout/generic/nsBlockFrame.cpp b/layout/generic/nsBlockFrame.cpp
index a37bfc06b..8fec6cd6a 100644
--- a/layout/generic/nsBlockFrame.cpp
+++ b/layout/generic/nsBlockFrame.cpp
@@ -4336,8 +4336,7 @@ CheckPlaceholderInLine(nsIFrame* aBlock, nsLineBox* aLine, nsFloatCache* aFC)
"float in a line should never be a continuation");
NS_ASSERTION(!(aFC->mFloat->GetStateBits() & NS_FRAME_IS_PUSHED_FLOAT),
"float in a line should never be a pushed float");
- nsIFrame* ph = aBlock->PresContext()->FrameManager()->
- GetPlaceholderFrameFor(aFC->mFloat->FirstInFlow());
+ nsIFrame* ph = aFC->mFloat->FirstInFlow()->GetPlaceholderFrame();
for (nsIFrame* f = ph; f; f = f->GetParent()) {
if (f->GetParent() == aBlock)
return aLine->Contains(f);
@@ -4939,9 +4938,8 @@ nsBlockFrame::DrainSelfPushedFloats()
if (f->GetPrevContinuation()) {
// FIXME
} else {
- nsPlaceholderFrame *placeholder =
- presContext->FrameManager()->GetPlaceholderFrameFor(f);
- nsIFrame *floatOriginalParent = presContext->PresShell()->
+ nsPlaceholderFrame* placeholder = f->GetPlaceholderFrame();
+ nsIFrame* floatOriginalParent = presContext->PresShell()->
FrameConstructor()->GetFloatContainingBlock(placeholder);
if (floatOriginalParent != this) {
// This is a first continuation that was pushed from one of our
@@ -5565,7 +5563,7 @@ FindChildContaining(nsBlockFrame* aFrame, nsIFrame* aFindFrame)
return nullptr;
if (!(child->GetStateBits() & NS_FRAME_OUT_OF_FLOW))
break;
- aFindFrame = aFrame->PresContext()->FrameManager()->GetPlaceholderFrameFor(child);
+ aFindFrame = child->GetPlaceholderFrame();
}
return child;
@@ -6847,9 +6845,8 @@ nsBlockFrame::ChildIsDirty(nsIFrame* aChild)
AddStateBits(NS_BLOCK_LOOK_FOR_DIRTY_FRAMES);
} else {
NS_ASSERTION(aChild->IsFloating(), "should be a float");
- nsIFrame *thisFC = FirstContinuation();
- nsIFrame *placeholderPath =
- PresContext()->FrameManager()->GetPlaceholderFrameFor(aChild);
+ nsIFrame* thisFC = FirstContinuation();
+ nsIFrame* placeholderPath = aChild->GetPlaceholderFrame();
// SVG code sometimes sends FrameNeedsReflow notifications during
// frame destruction, leading to null placeholders, but we're safe
// ignoring those.