| Index: third_party/WebKit/Source/core/dom/Node.h
|
| diff --git a/third_party/WebKit/Source/core/dom/Node.h b/third_party/WebKit/Source/core/dom/Node.h
|
| index ad8cbb44bc25ed3e16ec6a51c36b4e1fb368847f..770523ec2e5e83fe2827d8576235598b5d58de66 100644
|
| --- a/third_party/WebKit/Source/core/dom/Node.h
|
| +++ b/third_party/WebKit/Source/core/dom/Node.h
|
| @@ -520,13 +520,22 @@ public:
|
|
|
| // As layoutObject() includes a branch you should avoid calling it repeatedly in hot code paths.
|
| // Note that if a Node has a layoutObject, it's parentNode is guaranteed to have one as well.
|
| - LayoutObject* layoutObject() const { return hasRareData() ? m_data.m_rareData->layoutObject() : m_data.m_layoutObject; }
|
| + LayoutObject* layoutObject() const
|
| + {
|
| + if (hasRareData())
|
| + return m_data.m_rareData->layoutObject();
|
| + return hasLayoutObject() ? m_data.m_layoutObject : nullptr;
|
| + }
|
| void setLayoutObject(LayoutObject* layoutObject)
|
| {
|
| if (hasRareData())
|
| m_data.m_rareData->setLayoutObject(layoutObject);
|
| else
|
| m_data.m_layoutObject = layoutObject;
|
| + if (layoutObject)
|
| + setFlag(HasLayoutObjectFlag);
|
| + else
|
| + clearFlag(HasLayoutObjectFlag);
|
| }
|
|
|
| // Use these two methods with caution.
|
| @@ -741,10 +750,12 @@ private:
|
| V0CustomElementFlag = 1 << 28,
|
| V0CustomElementUpgradedFlag = 1 << 29,
|
|
|
| + HasLayoutObjectFlag = 1 << 30,
|
| +
|
| DefaultNodeFlags = IsFinishedParsingChildrenFlag | NeedsReattachStyleChange
|
| };
|
|
|
| - // 3 bits remaining.
|
| + // 1 bit remaining.
|
|
|
| bool getFlag(NodeFlags mask) const { return m_nodeFlags & mask; }
|
| void setFlag(bool f, NodeFlags mask) { m_nodeFlags = (m_nodeFlags & ~mask) | (-(int32_t)f & mask); }
|
| @@ -776,6 +787,7 @@ protected:
|
|
|
| static void reattachWhitespaceSiblingsIfNeeded(Text* start);
|
|
|
| + bool hasLayoutObject() const { return getFlag(HasLayoutObjectFlag); }
|
| bool hasRareData() const { return getFlag(HasRareDataFlag); }
|
|
|
| NodeRareData* rareData() const;
|
| @@ -834,6 +846,7 @@ private:
|
| // When a node has rare data we move the layoutObject into the rare data.
|
| union DataUnion {
|
| DataUnion() : m_layoutObject(nullptr) { }
|
| + ComputedStyle* m_computedStyle;
|
| // LayoutObjects are fully owned by their DOM node. See LayoutObject's
|
| // LIFETIME documentation section.
|
| LayoutObject* m_layoutObject;
|
|
|