| Index: Source/core/rendering/RenderBlockFlow.h
|
| diff --git a/Source/core/rendering/RenderBlockFlow.h b/Source/core/rendering/RenderBlockFlow.h
|
| index 0561c6b5985b1af24446aab13effc6a0fd780753..27be3aec49ae955e4bc9d97fbd60b074d0aa3552 100644
|
| --- a/Source/core/rendering/RenderBlockFlow.h
|
| +++ b/Source/core/rendering/RenderBlockFlow.h
|
| @@ -52,6 +52,7 @@ class RenderBlockFlow : public RenderBlock {
|
| public:
|
| explicit RenderBlockFlow(ContainerNode*);
|
| virtual ~RenderBlockFlow();
|
| + virtual void trace(Visitor*) OVERRIDE;
|
|
|
| static RenderBlockFlow* createAnonymous(Document*);
|
|
|
| @@ -167,11 +168,11 @@ public:
|
| return obj->isFloating() || (obj->isOutOfFlowPositioned() && !obj->style()->isOriginalDisplayInlineType() && !obj->container()->isRenderInline());
|
| }
|
|
|
| - RenderMultiColumnFlowThread* multiColumnFlowThread() const { return m_rareData ? m_rareData->m_multiColumnFlowThread : 0; }
|
| + RenderMultiColumnFlowThread* multiColumnFlowThread() const { return m_rareData ? m_rareData->m_multiColumnFlowThread.get() : 0; }
|
| void resetMultiColumnFlowThread()
|
| {
|
| if (m_rareData)
|
| - m_rareData->m_multiColumnFlowThread = 0;
|
| + m_rareData->m_multiColumnFlowThread = nullptr;
|
| }
|
|
|
| void addOverflowFromInlineChildren();
|
| @@ -350,19 +351,20 @@ public:
|
| MarginValues marginValuesForChild(RenderBox* child) const;
|
|
|
| // Allocated only when some of these fields have non-default values
|
| - struct RenderBlockFlowRareData {
|
| - WTF_MAKE_NONCOPYABLE(RenderBlockFlowRareData); WTF_MAKE_FAST_ALLOCATED;
|
| + struct RenderBlockFlowRareData : public NoBaseWillBeGarbageCollected<RenderBlockFlowRareData> {
|
| + WTF_MAKE_NONCOPYABLE(RenderBlockFlowRareData); WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED;
|
| public:
|
| RenderBlockFlowRareData(const RenderBlockFlow* block)
|
| : m_margins(positiveMarginBeforeDefault(block), negativeMarginBeforeDefault(block), positiveMarginAfterDefault(block), negativeMarginAfterDefault(block))
|
| , m_paginationStrut(0)
|
| - , m_multiColumnFlowThread(0)
|
| + , m_multiColumnFlowThread(nullptr)
|
| , m_lineBreakToAvoidWidow(-1)
|
| , m_didBreakAtLineToAvoidWidow(false)
|
| , m_discardMarginBefore(false)
|
| , m_discardMarginAfter(false)
|
| {
|
| }
|
| + void trace(Visitor*);
|
|
|
| static LayoutUnit positiveMarginBeforeDefault(const RenderBlockFlow* block)
|
| {
|
| @@ -384,7 +386,7 @@ public:
|
| MarginValues m_margins;
|
| LayoutUnit m_paginationStrut;
|
|
|
| - RenderMultiColumnFlowThread* m_multiColumnFlowThread;
|
| + RawPtrWillBeMember<RenderMultiColumnFlowThread> m_multiColumnFlowThread;
|
|
|
| int m_lineBreakToAvoidWidow;
|
| bool m_didBreakAtLineToAvoidWidow : 1;
|
| @@ -452,8 +454,9 @@ private:
|
| LayoutUnit m_repaintLogicalBottom;
|
|
|
| virtual bool isSelfCollapsingBlock() const OVERRIDE;
|
| +
|
| protected:
|
| - OwnPtr<RenderBlockFlowRareData> m_rareData;
|
| + OwnPtrWillBeMember<RenderBlockFlowRareData> m_rareData;
|
| OwnPtr<FloatingObjects> m_floatingObjects;
|
|
|
| friend class BreakingContext; // FIXME: It uses insertFloatingObject and positionNewFloatOnLine, if we move those out from the private scope/add a helper to LineBreaker, we can remove this friend
|
|
|