Title: [180377] branches/safari-600.5-branch

Diff

Modified: branches/safari-600.5-branch/LayoutTests/ChangeLog (180376 => 180377)


--- branches/safari-600.5-branch/LayoutTests/ChangeLog	2015-02-20 01:36:08 UTC (rev 180376)
+++ branches/safari-600.5-branch/LayoutTests/ChangeLog	2015-02-20 01:41:06 UTC (rev 180377)
@@ -1,5 +1,25 @@
 2015-02-19  Dana Burkart  <dburk...@apple.com>
 
+        Merged r179877. <rdar://problem/19850766>
+
+    2015-02-07  Zalan Bujtas  <za...@apple.com>
+
+            REGRESSION (r168046): Crash in WebCore::InlineBox::renderer / WebCore::RenderFlowThread::checkLinesConsistency
+            https://bugs.webkit.org/show_bug.cgi?id=133462
+
+            Reviewed by David Hyatt.
+
+            RenderFlowThread::m_lineToRegionMap stores pointers to the root inlineboxes in the block flow.
+            Normally root inlineboxes remove themselves from this map in their dtors. However when collapsing an anonymous block,
+            we detach the inline tree first and destroy them after. The detached root boxes can't access
+            the flowthread containing block and we end up with dangling pointers in this map.
+            Call removeFlowChildInfo() before detaching the subtree to ensure proper pointer removal.
+
+            * fast/multicol/newmulticol/crash-when-switching-to-floating-expected.txt: Added.
+            * fast/multicol/newmulticol/crash-when-switching-to-floating.html: Added.
+
+2015-02-19  Dana Burkart  <dburk...@apple.com>
+
         Merged r179776. <rdar://problem/19850771>
 
     2015-02-06  Zalan Bujtas  <za...@apple.com>

Copied: branches/safari-600.5-branch/LayoutTests/fast/multicol/newmulticol/crash-when-switching-to-floating-expected.txt (from rev 179877, trunk/LayoutTests/fast/multicol/newmulticol/crash-when-switching-to-floating-expected.txt) (0 => 180377)


--- branches/safari-600.5-branch/LayoutTests/fast/multicol/newmulticol/crash-when-switching-to-floating-expected.txt	                        (rev 0)
+++ branches/safari-600.5-branch/LayoutTests/fast/multicol/newmulticol/crash-when-switching-to-floating-expected.txt	2015-02-20 01:41:06 UTC (rev 180377)
@@ -0,0 +1 @@
+Pass if no crash or assert in debug build.

Copied: branches/safari-600.5-branch/LayoutTests/fast/multicol/newmulticol/crash-when-switching-to-floating.html (from rev 179877, trunk/LayoutTests/fast/multicol/newmulticol/crash-when-switching-to-floating.html) (0 => 180377)


--- branches/safari-600.5-branch/LayoutTests/fast/multicol/newmulticol/crash-when-switching-to-floating.html	                        (rev 0)
+++ branches/safari-600.5-branch/LayoutTests/fast/multicol/newmulticol/crash-when-switching-to-floating.html	2015-02-20 01:41:06 UTC (rev 180377)
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>This tests that we clean up the inline content properly after introducing floating.</title> 
+<script>
+  if (window.testRunner)
+    testRunner.dumpAsText();
+</script>
+</head>
+<body>
+<table><td></table>
+Pass if no crash or assert in debug build.
+<script>
+var head = document.getElementsByTagName("head")[0];
+style = document.createElement("style");
+style.innerHTML="* { \n\
+-webkit-animation-name: name9; \n\
+-webkit-animation-duration: 10s; \n\
+} \n\
+@-webkit-keyframes name9 { \n\
+  from { \n\
+  } \n\
+  to { \n\
+    -webkit-column-width: auto; \n\
+";
+head.appendChild(style);
+document.execCommand("SelectAll");
+style.innerHTML="* {float:left;}";
+</script>
+</body>
+</html>

Modified: branches/safari-600.5-branch/Source/WebCore/ChangeLog (180376 => 180377)


--- branches/safari-600.5-branch/Source/WebCore/ChangeLog	2015-02-20 01:36:08 UTC (rev 180376)
+++ branches/safari-600.5-branch/Source/WebCore/ChangeLog	2015-02-20 01:41:06 UTC (rev 180377)
@@ -1,5 +1,27 @@
 2015-02-19  Dana Burkart  <dburk...@apple.com>
 
+        Merged r179877. <rdar://problem/19850766>
+
+    2015-02-07  Zalan Bujtas  <za...@apple.com>
+
+            REGRESSION (r168046): Crash in WebCore::InlineBox::renderer / WebCore::RenderFlowThread::checkLinesConsistency
+            https://bugs.webkit.org/show_bug.cgi?id=133462
+
+            Reviewed by David Hyatt.
+
+            RenderFlowThread::m_lineToRegionMap stores pointers to the root inlineboxes in the block flow.
+            Normally root inlineboxes remove themselves from this map in their dtors. However when collapsing an anonymous block,
+            we detach the inline tree first and destroy them after. The detached root boxes can't access
+            the flowthread containing block and we end up with dangling pointers in this map.
+            Call removeFlowChildInfo() before detaching the subtree to ensure proper pointer removal.
+
+            Test: fast/multicol/newmulticol/crash-when-switching-to-floating.html
+
+            * rendering/RenderBlock.cpp:
+            (WebCore::RenderBlock::collapseAnonymousBoxChild):
+
+2015-02-19  Dana Burkart  <dburk...@apple.com>
+
         Merged r179776. <rdar://problem/19850771>
 
     2015-02-06  Zalan Bujtas  <za...@apple.com>

Modified: branches/safari-600.5-branch/Source/WebCore/rendering/RenderBlock.cpp (180376 => 180377)


--- branches/safari-600.5-branch/Source/WebCore/rendering/RenderBlock.cpp	2015-02-20 01:36:08 UTC (rev 180376)
+++ branches/safari-600.5-branch/Source/WebCore/rendering/RenderBlock.cpp	2015-02-20 01:41:06 UTC (rev 180377)
@@ -758,9 +758,7 @@
     parent->setChildrenInline(child->childrenInline());
     RenderObject* nextSibling = child->nextSibling();
 
-    RenderFlowThread* childFlowThread = child->flowThreadContainingBlock();
-    CurrentRenderFlowThreadMaintainer flowThreadMaintainer(childFlowThread);
-    if (childFlowThread && childFlowThread->isRenderNamedFlowThread())
+    if (auto* childFlowThread = child->flowThreadContainingBlock())
         toRenderNamedFlowThread(childFlowThread)->removeFlowChildInfo(child);
 
     parent->removeChildInternal(*child, child->hasLayer() ? NotifyChildren : DontNotifyChildren);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to