| 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;
|
| }
|
|
|