summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2012-04-12 15:14:27 +0100
committerSteve Block <steveblock@google.com>2012-04-12 18:44:16 +0100
commitb52229f8ad5e8b3632305005e437104c11eba942 (patch)
treec802da04412c75683ea39ff02d24a8ef3a4e78b9
parentc58b6b265aa9aca56296a4c1199521fe4ab3cb70 (diff)
downloadexternal_webkit-b52229f8ad5e8b3632305005e437104c11eba942.zip
external_webkit-b52229f8ad5e8b3632305005e437104c11eba942.tar.gz
external_webkit-b52229f8ad5e8b3632305005e437104c11eba942.tar.bz2
Cherry-pick WebKit change r105769 to fix a LayoutTest crash
fast/multicol/clone-block-children-inline-mismatch-crash.html See http://trac.webkit.org/changeset/105769 Bug: 6329129 Change-Id: Ia48c7e50adb7de3fc1e897a0de90b62a1ca63786
-rw-r--r--Source/WebCore/rendering/RenderBlock.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/Source/WebCore/rendering/RenderBlock.cpp b/Source/WebCore/rendering/RenderBlock.cpp
index 42d68a0..5cef4cf 100644
--- a/Source/WebCore/rendering/RenderBlock.cpp
+++ b/Source/WebCore/rendering/RenderBlock.cpp
@@ -443,6 +443,8 @@ RenderBlock* RenderBlock::clone() const
else {
cloneBlock = new (renderArena()) RenderBlock(node());
cloneBlock->setStyle(style());
+ if (!childrenInline() && cloneBlock->firstChild() && cloneBlock->firstChild()->isInline())
+ cloneBlock->makeChildrenNonInline();
}
cloneBlock->setChildrenInline(childrenInline());
return cloneBlock;
@@ -657,8 +659,8 @@ RenderBlock* RenderBlock::columnsBlockForSpanningElement(RenderObject* newChild)
// cross the streams and have to cope with both types of continuations mixed together).
// This function currently supports (1) and (2).
RenderBlock* columnsBlockAncestor = 0;
- if (!newChild->isText() && newChild->style()->columnSpan() && !newChild->isFloatingOrPositioned()
- && !newChild->isInline() && !isAnonymousColumnSpanBlock()) {
+ if (!newChild->isText() && newChild->style()->columnSpan() && !newChild->isBeforeOrAfterContent()
+ && !newChild->isFloatingOrPositioned() && !newChild->isInline() && !isAnonymousColumnSpanBlock()) {
if (style()->specifiesColumns())
columnsBlockAncestor = this;
else if (parent() && parent()->isRenderBlock())