Title: [222874] trunk/Source/WebCore
- Revision
- 222874
- Author
- [email protected]
- Date
- 2017-10-04 13:23:10 -0700 (Wed, 04 Oct 2017)
Log Message
RenderMultiColumnFlow::m_beingEvacuated is redundant.
https://bugs.webkit.org/show_bug.cgi?id=177886
<rdar://problem/34815997>
Reviewed by Simon Fraser.
m_beingEvacuated was introduced to protect RenderMultiColumnFlow from triggering
remove/insert code while the column is being destroyed and the descendants are getting reparented.
However,
1. the setMultiColumnFlow(nullptr) call already protects from triggering the remove callback
2. When adding the children back to their original position, we should not be able to find
this column as the enclosing block anymore (simply because we are moving the children as siblings
to the multicol renderer)
Covered by existing tests.
* rendering/RenderMultiColumnFlow.cpp:
(WebCore::RenderMultiColumnFlow::RenderMultiColumnFlow):
(WebCore::RenderMultiColumnFlow::evacuateAndDestroy):
(WebCore::RenderMultiColumnFlow::fragmentedFlowDescendantInserted):
(WebCore::RenderMultiColumnFlow::fragmentedFlowRelativeWillBeRemoved):
* rendering/RenderMultiColumnFlow.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (222873 => 222874)
--- trunk/Source/WebCore/ChangeLog 2017-10-04 20:20:43 UTC (rev 222873)
+++ trunk/Source/WebCore/ChangeLog 2017-10-04 20:23:10 UTC (rev 222874)
@@ -1,3 +1,28 @@
+2017-10-04 Zalan Bujtas <[email protected]>
+
+ RenderMultiColumnFlow::m_beingEvacuated is redundant.
+ https://bugs.webkit.org/show_bug.cgi?id=177886
+ <rdar://problem/34815997>
+
+ Reviewed by Simon Fraser.
+
+ m_beingEvacuated was introduced to protect RenderMultiColumnFlow from triggering
+ remove/insert code while the column is being destroyed and the descendants are getting reparented.
+ However,
+ 1. the setMultiColumnFlow(nullptr) call already protects from triggering the remove callback
+ 2. When adding the children back to their original position, we should not be able to find
+ this column as the enclosing block anymore (simply because we are moving the children as siblings
+ to the multicol renderer)
+
+ Covered by existing tests.
+
+ * rendering/RenderMultiColumnFlow.cpp:
+ (WebCore::RenderMultiColumnFlow::RenderMultiColumnFlow):
+ (WebCore::RenderMultiColumnFlow::evacuateAndDestroy):
+ (WebCore::RenderMultiColumnFlow::fragmentedFlowDescendantInserted):
+ (WebCore::RenderMultiColumnFlow::fragmentedFlowRelativeWillBeRemoved):
+ * rendering/RenderMultiColumnFlow.h:
+
2017-10-04 Antti Koivisto <[email protected]>
Fix typo.
Modified: trunk/Source/WebCore/rendering/RenderMultiColumnFlow.cpp (222873 => 222874)
--- trunk/Source/WebCore/rendering/RenderMultiColumnFlow.cpp 2017-10-04 20:20:43 UTC (rev 222873)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnFlow.cpp 2017-10-04 20:23:10 UTC (rev 222874)
@@ -49,7 +49,6 @@
, m_needsHeightsRecalculation(false)
, m_progressionIsInline(false)
, m_progressionIsReversed(false)
- , m_beingEvacuated(false)
{
setFragmentedFlowState(InsideInFragmentedFlow);
}
@@ -165,8 +164,6 @@
void RenderMultiColumnFlow::evacuateAndDestroy()
{
RenderBlockFlow* multicolContainer = multiColumnBlockFlow();
- m_beingEvacuated = true;
-
// Delete the line box tree.
deleteLines();
@@ -403,7 +400,7 @@
void RenderMultiColumnFlow::fragmentedFlowDescendantInserted(RenderObject& newDescendant)
{
- if (gShiftingSpanner || m_beingEvacuated || newDescendant.isInFlowRenderFragmentedFlow())
+ if (gShiftingSpanner || newDescendant.isInFlowRenderFragmentedFlow())
return;
Vector<RenderPtr<RenderObject>> spannersToDelete;
@@ -468,8 +465,6 @@
void RenderMultiColumnFlow::fragmentedFlowRelativeWillBeRemoved(RenderObject& relative)
{
- if (m_beingEvacuated)
- return;
invalidateFragments();
if (is<RenderMultiColumnSpannerPlaceholder>(relative)) {
// Remove the map entry for this spanner, but leave the actual spanner renderer alone. Also
Modified: trunk/Source/WebCore/rendering/RenderMultiColumnFlow.h (222873 => 222874)
--- trunk/Source/WebCore/rendering/RenderMultiColumnFlow.h 2017-10-04 20:20:43 UTC (rev 222873)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnFlow.h 2017-10-04 20:23:10 UTC (rev 222874)
@@ -145,7 +145,6 @@
bool m_progressionIsInline;
bool m_progressionIsReversed;
- bool m_beingEvacuated;
static bool gShiftingSpanner;
};
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes