Commit 3d9faf5e authored by Ian Kilpatrick's avatar Ian Kilpatrick Committed by Commit Bot

Remove ComputedStyle ref/deref within LayoutTreeBuilder.

As the LayoutTreeBuilder is only allowed to be stack-allocated, and
doesn't take direct ownership of the ComputedStyle, we can just store a
pointer to the ComputedStyle, instead of a scoped_refptr.

There should be no behaviour change.

Change-Id: Id70a0df625831aaf516b5b2c11537d9fd38498f4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1638617Reviewed-by: default avatarRune Lillesveen <futhark@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#665308}
parent 6b8b3c76
......@@ -47,7 +47,7 @@ namespace blink {
LayoutTreeBuilderForElement::LayoutTreeBuilderForElement(Element& element,
ComputedStyle* style)
: LayoutTreeBuilder(element, nullptr), style_(style) {
: LayoutTreeBuilder(element, nullptr, style) {
DCHECK(element.CanParticipateInFlatTree());
DCHECK(style_);
DCHECK(!style_->IsEnsuredInDisplayNone());
......
......@@ -59,8 +59,12 @@ class LayoutTreeBuilder {
STACK_ALLOCATED();
protected:
LayoutTreeBuilder(NodeType& node, LayoutObject* layout_object_parent)
: node_(node), layout_object_parent_(layout_object_parent) {
LayoutTreeBuilder(NodeType& node,
LayoutObject* layout_object_parent,
ComputedStyle* style)
: node_(node),
layout_object_parent_(layout_object_parent),
style_(style) {
DCHECK(!node.GetLayoutObject());
DCHECK(node.GetDocument().InStyleRecalc());
DCHECK(node.InActiveDocument());
......@@ -92,6 +96,7 @@ class LayoutTreeBuilder {
Member<NodeType> node_;
LayoutObject* layout_object_parent_;
ComputedStyle* style_;
};
class LayoutTreeBuilderForElement : public LayoutTreeBuilder<Element> {
......@@ -108,8 +113,6 @@ class LayoutTreeBuilderForElement : public LayoutTreeBuilder<Element> {
LayoutObject* NextLayoutObject() const;
bool ShouldCreateLayoutObject() const;
void CreateLayoutObject(LegacyLayout);
scoped_refptr<ComputedStyle> style_;
};
class LayoutTreeBuilderForText : public LayoutTreeBuilder<Text> {
......@@ -117,14 +120,12 @@ class LayoutTreeBuilderForText : public LayoutTreeBuilder<Text> {
LayoutTreeBuilderForText(Text& text,
LayoutObject* layout_parent,
ComputedStyle* style_from_parent)
: LayoutTreeBuilder(text, layout_parent), style_(style_from_parent) {}
: LayoutTreeBuilder(text, layout_parent, style_from_parent) {}
void CreateLayoutObject();
private:
LayoutObject* CreateInlineWrapperForDisplayContentsIfNeeded();
scoped_refptr<ComputedStyle> style_;
};
} // namespace blink
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment