Title: [227541] branches/safari-605-branch/Source/WebCore
Revision
227541
Author
jmarc...@apple.com
Date
2018-01-24 12:15:49 -0800 (Wed, 24 Jan 2018)

Log Message

Cherry-pick r227525. rdar://problem/36830360

Modified Paths

Diff

Modified: branches/safari-605-branch/Source/WebCore/ChangeLog (227540 => 227541)


--- branches/safari-605-branch/Source/WebCore/ChangeLog	2018-01-24 20:15:47 UTC (rev 227540)
+++ branches/safari-605-branch/Source/WebCore/ChangeLog	2018-01-24 20:15:49 UTC (rev 227541)
@@ -1,5 +1,24 @@
 2018-01-24  Jason Marcell  <jmarc...@apple.com>
 
+        Cherry-pick r227525. rdar://problem/36830360
+
+    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-24  Jason Marcell  <jmarc...@apple.com>
+
         Cherry-pick r227524. rdar://problem/36830369
 
     2018-01-23  Dean Jackson  <d...@apple.com>

Modified: branches/safari-605-branch/Source/WebCore/rendering/RenderBlock.cpp (227540 => 227541)


--- branches/safari-605-branch/Source/WebCore/rendering/RenderBlock.cpp	2018-01-24 20:15:47 UTC (rev 227540)
+++ branches/safari-605-branch/Source/WebCore/rendering/RenderBlock.cpp	2018-01-24 20:15:49 UTC (rev 227541)
@@ -253,7 +253,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;
@@ -3067,7 +3067,7 @@
     if (!rareData || !rareData->m_enclosingFragmentedFlow)
         return nullptr;
 
-    return rareData->m_enclosingFragmentedFlow.value();
+    return rareData->m_enclosingFragmentedFlow.value().get();
 }
 
 bool RenderBlock::cachedEnclosingFragmentedFlowNeedsUpdate() const
@@ -3089,7 +3089,7 @@
 RenderFragmentedFlow* RenderBlock::updateCachedEnclosingFragmentedFlow(RenderFragmentedFlow* fragmentedFlow) const
 {
     RenderBlockRareData& rareData = ensureBlockRareData(*this);
-    rareData.m_enclosingFragmentedFlow = fragmentedFlow;
+    rareData.m_enclosingFragmentedFlow = makeWeakPtr(fragmentedFlow);
 
     return fragmentedFlow;
 }
@@ -3101,7 +3101,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