Title: [227525] trunk/Source/WebCore
Revision
227525
Author
an...@apple.com
Date
2018-01-24 09:28:54 -0800 (Wed, 24 Jan 2018)

Log Message

RenderBlockRareData::m_enclosingFragmentedFlow should be WeakPtr
https://bugs.webkit.org/show_bug.cgi?id=182045
<rdar://problem/36334787>

Reviewed by Zalan Bujtas.

For safety.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::cachedEnclosingFragmentedFlow const):
(WebCore::RenderBlock::updateCachedEnclosingFragmentedFlow const):
(WebCore::RenderBlock::locateEnclosingFragmentedFlow const):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (227524 => 227525)


--- trunk/Source/WebCore/ChangeLog	2018-01-24 17:14:56 UTC (rev 227524)
+++ trunk/Source/WebCore/ChangeLog	2018-01-24 17:28:54 UTC (rev 227525)
@@ -1,3 +1,18 @@
+2018-01-24  Antti Koivisto  <an...@apple.com>
+
+        RenderBlockRareData::m_enclosingFragmentedFlow should be WeakPtr
+        https://bugs.webkit.org/show_bug.cgi?id=182045
+        <rdar://problem/36334787>
+
+        Reviewed by Zalan Bujtas.
+
+        For safety.
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::cachedEnclosingFragmentedFlow const):
+        (WebCore::RenderBlock::updateCachedEnclosingFragmentedFlow const):
+        (WebCore::RenderBlock::locateEnclosingFragmentedFlow const):
+
 2018-01-23  Dean Jackson  <d...@apple.com>
 
         REGRESSION (r222961?): sRGB images shown in WebGL are over-saturated on a wide gamut monitor

Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (227524 => 227525)


--- trunk/Source/WebCore/rendering/RenderBlock.cpp	2018-01-24 17:14:56 UTC (rev 227524)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp	2018-01-24 17:28:54 UTC (rev 227525)
@@ -254,7 +254,7 @@
     LayoutUnit m_pageLogicalOffset;
     LayoutUnit m_intrinsicBorderForFieldset;
     
-    std::optional<RenderFragmentedFlow*> m_enclosingFragmentedFlow;
+    std::optional<WeakPtr<RenderFragmentedFlow>> m_enclosingFragmentedFlow;
 };
 
 typedef HashMap<const RenderBlock*, std::unique_ptr<RenderBlockRareData>> RenderBlockRareDataMap;
@@ -2833,7 +2833,7 @@
     if (!rareData || !rareData->m_enclosingFragmentedFlow)
         return nullptr;
 
-    return rareData->m_enclosingFragmentedFlow.value();
+    return rareData->m_enclosingFragmentedFlow.value().get();
 }
 
 bool RenderBlock::cachedEnclosingFragmentedFlowNeedsUpdate() const
@@ -2855,7 +2855,7 @@
 RenderFragmentedFlow* RenderBlock::updateCachedEnclosingFragmentedFlow(RenderFragmentedFlow* fragmentedFlow) const
 {
     RenderBlockRareData& rareData = ensureBlockRareData(*this);
-    rareData.m_enclosingFragmentedFlow = fragmentedFlow;
+    rareData.m_enclosingFragmentedFlow = makeWeakPtr(fragmentedFlow);
 
     return fragmentedFlow;
 }
@@ -2867,7 +2867,7 @@
         return updateCachedEnclosingFragmentedFlow(RenderBox::locateEnclosingFragmentedFlow());
 
     ASSERT(rareData->m_enclosingFragmentedFlow.value() == RenderBox::locateEnclosingFragmentedFlow());
-    return rareData->m_enclosingFragmentedFlow.value();
+    return rareData->m_enclosingFragmentedFlow.value().get();
 }
 
 void RenderBlock::resetEnclosingFragmentedFlowAndChildInfoIncludingDescendants(RenderFragmentedFlow*)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to