Index: Source/core/rendering/RenderRuby.cpp |
diff --git a/Source/core/rendering/RenderRuby.cpp b/Source/core/rendering/RenderRuby.cpp |
index a7f0c7000a039a7bd862da767f305ef9f6dd1366..563ce62cf1a019d8bbec18668706c1c91c072e08 100644 |
--- a/Source/core/rendering/RenderRuby.cpp |
+++ b/Source/core/rendering/RenderRuby.cpp |
@@ -165,11 +165,13 @@ void RenderRubyAsInline::addChild(RenderObject* child, RenderObject* beforeChild |
if (beforeChild && !isAfterContent(beforeChild)) { |
// insert child into run |
- ASSERT(!beforeChild->isRubyRun()); |
RenderObject* run = beforeChild; |
while (run && !run->isRubyRun()) |
run = run->parent(); |
if (run) { |
+ if (beforeChild == run) |
+ beforeChild = toRenderRubyRun(beforeChild)->firstChild(); |
+ ASSERT(!beforeChild || beforeChild->isDescendantOf(run)); |
run->addChild(child, beforeChild); |
return; |
} |
@@ -271,11 +273,13 @@ void RenderRubyAsBlock::addChild(RenderObject* child, RenderObject* beforeChild) |
if (beforeChild && !isAfterContent(beforeChild)) { |
// insert child into run |
- ASSERT(!beforeChild->isRubyRun()); |
RenderObject* run = beforeChild; |
while (run && !run->isRubyRun()) |
run = run->parent(); |
if (run) { |
+ if (beforeChild == run) |
+ beforeChild = toRenderRubyRun(beforeChild)->firstChild(); |
+ ASSERT(!beforeChild || beforeChild->isDescendantOf(run)); |
run->addChild(child, beforeChild); |
return; |
} |