Title: [208555] trunk/Source/WebCore
Revision
208555
Author
za...@apple.com
Date
2016-11-10 11:44:51 -0800 (Thu, 10 Nov 2016)

Log Message

RenderElement::invalidateFlowThreadContainingBlockIncludingDescendants should be on RenderBlock.
https://bugs.webkit.org/show_bug.cgi?id=164601

Reviewed by Simon Fraser.

FlowThread containing blocks are cached at RenderBlocks. It makes no sense to call the invalidate function on a RenderElement.
Move invalidateFlowThreadContainingBlockIncludingDescendants to RenderBlock.

No change in functionality.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::invalidateFlowThreadContainingBlockIncludingDescendants):
* rendering/RenderBlock.h:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::invalidateFlowThreadContainingBlockIncludingDescendants): Deleted.
* rendering/RenderElement.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::splitInlines):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (208554 => 208555)


--- trunk/Source/WebCore/ChangeLog	2016-11-10 19:43:05 UTC (rev 208554)
+++ trunk/Source/WebCore/ChangeLog	2016-11-10 19:44:51 UTC (rev 208555)
@@ -1,3 +1,24 @@
+2016-11-10  Zalan Bujtas  <za...@apple.com>
+
+        RenderElement::invalidateFlowThreadContainingBlockIncludingDescendants should be on RenderBlock.
+        https://bugs.webkit.org/show_bug.cgi?id=164601
+
+        Reviewed by Simon Fraser.
+
+        FlowThread containing blocks are cached at RenderBlocks. It makes no sense to call the invalidate function on a RenderElement.
+        Move invalidateFlowThreadContainingBlockIncludingDescendants to RenderBlock.
+
+        No change in functionality.
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::invalidateFlowThreadContainingBlockIncludingDescendants):
+        * rendering/RenderBlock.h:
+        * rendering/RenderElement.cpp:
+        (WebCore::RenderElement::invalidateFlowThreadContainingBlockIncludingDescendants): Deleted.
+        * rendering/RenderElement.h:
+        * rendering/RenderInline.cpp:
+        (WebCore::RenderInline::splitInlines):
+
 2016-11-10  Brent Fulgham  <bfulg...@apple.com>
 
         Local file restrictions should not block sessionStorage access.

Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (208554 => 208555)


--- trunk/Source/WebCore/rendering/RenderBlock.cpp	2016-11-10 19:43:05 UTC (rev 208554)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp	2016-11-10 19:44:51 UTC (rev 208555)
@@ -3377,6 +3377,28 @@
     return rareData->m_flowThreadContainingBlock.value();
 }
 
+void RenderBlock::invalidateFlowThreadContainingBlockIncludingDescendants()
+{
+    if (flowThreadState() == NotInsideFlowThread)
+        return;
+
+    if (cachedFlowThreadContainingBlockNeedsUpdate())
+        return;
+
+    auto* flowThread = cachedFlowThreadContainingBlock();
+    setCachedFlowThreadContainingBlockNeedsUpdate();
+
+    if (flowThread)
+        flowThread->removeFlowChildInfo(this);
+
+    for (auto& child : childrenOfType<RenderElement>(*this)) {
+        if (flowThread)
+            flowThread->removeFlowChildInfo(&child);
+        if (is<RenderBlock>(child))
+            downcast<RenderBlock>(child).invalidateFlowThreadContainingBlockIncludingDescendants();
+    }
+}
+
 LayoutUnit RenderBlock::paginationStrut() const
 {
     RenderBlockRareData* rareData = getBlockRareData(this);

Modified: trunk/Source/WebCore/rendering/RenderBlock.h (208554 => 208555)


--- trunk/Source/WebCore/rendering/RenderBlock.h	2016-11-10 19:43:05 UTC (rev 208554)
+++ trunk/Source/WebCore/rendering/RenderBlock.h	2016-11-10 19:44:51 UTC (rev 208555)
@@ -307,6 +307,7 @@
     RenderFlowThread* cachedFlowThreadContainingBlock() const;
     void setCachedFlowThreadContainingBlockNeedsUpdate();
     virtual bool cachedFlowThreadContainingBlockNeedsUpdate() const;
+    void invalidateFlowThreadContainingBlockIncludingDescendants();
 
 protected:
     RenderFlowThread* locateFlowThreadContainingBlock() const override;

Modified: trunk/Source/WebCore/rendering/RenderElement.cpp (208554 => 208555)


--- trunk/Source/WebCore/rendering/RenderElement.cpp	2016-11-10 19:43:05 UTC (rev 208554)
+++ trunk/Source/WebCore/rendering/RenderElement.cpp	2016-11-10 19:44:51 UTC (rev 208555)
@@ -2237,31 +2237,6 @@
         setFlowThreadState(NotInsideFlowThread);
 }
 
-void RenderElement::invalidateFlowThreadContainingBlockIncludingDescendants(RenderFlowThread* flowThread)
-{
-    if (flowThreadState() == NotInsideFlowThread)
-        return;
-
-    if (is<RenderBlock>(*this)) {
-        RenderBlock& block = downcast<RenderBlock>(*this);
-
-        if (block.cachedFlowThreadContainingBlockNeedsUpdate())
-            return;
-
-        flowThread = block.cachedFlowThreadContainingBlock();
-        block.setCachedFlowThreadContainingBlockNeedsUpdate();
-    }
-
-    if (flowThread)
-        flowThread->removeFlowChildInfo(this);
-
-    if (!is<RenderElement>(*this))
-        return;
-
-    for (auto& child : childrenOfType<RenderElement>(*this))
-        child.invalidateFlowThreadContainingBlockIncludingDescendants(flowThread);
-}
-
 #if ENABLE(TEXT_AUTOSIZING)
 static RenderObject::BlockContentHeightType includeNonFixedHeight(const RenderObject& renderer)
 {

Modified: trunk/Source/WebCore/rendering/RenderElement.h (208554 => 208555)


--- trunk/Source/WebCore/rendering/RenderElement.h	2016-11-10 19:43:05 UTC (rev 208554)
+++ trunk/Source/WebCore/rendering/RenderElement.h	2016-11-10 19:44:51 UTC (rev 208555)
@@ -224,7 +224,6 @@
     RespectImageOrientationEnum shouldRespectImageOrientation() const;
 
     void removeFromRenderFlowThread();
-    void invalidateFlowThreadContainingBlockIncludingDescendants(RenderFlowThread* = nullptr);
 
 protected:
     enum BaseTypeFlag {

Modified: trunk/Source/WebCore/rendering/RenderInline.cpp (208554 => 208555)


--- trunk/Source/WebCore/rendering/RenderInline.cpp	2016-11-10 19:43:05 UTC (rev 208554)
+++ trunk/Source/WebCore/rendering/RenderInline.cpp	2016-11-10 19:44:51 UTC (rev 208555)
@@ -522,7 +522,8 @@
     }
 
     // Clear the flow thread containing blocks cached during the detached state insertions.
-    cloneInline->invalidateFlowThreadContainingBlockIncludingDescendants();
+    for (auto& cloneBlockChild : childrenOfType<RenderBlock>(*cloneInline))
+        cloneBlockChild.invalidateFlowThreadContainingBlockIncludingDescendants();
 
     // Now we are at the block level. We need to put the clone into the toBlock.
     toBlock->insertChildInternal(cloneInline.leakPtr(), nullptr, NotifyChildren);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to