| Index: Source/core/dom/Text.cpp
|
| diff --git a/Source/core/dom/Text.cpp b/Source/core/dom/Text.cpp
|
| index 9ace889c425cee2227e1365d5dcf7b5f3cc521f0..f5d58a3e4b49fcff564169ab0c902e1646887608 100644
|
| --- a/Source/core/dom/Text.cpp
|
| +++ b/Source/core/dom/Text.cpp
|
| @@ -280,15 +280,20 @@ void Text::recalcTextStyle(StyleChange change)
|
| {
|
| RenderText* renderer = toRenderText(this->renderer());
|
|
|
| - if (change != NoChange && renderer)
|
| - renderer->setStyle(document()->styleResolver()->styleForText(this));
|
| + if (!renderer) {
|
| + if (needsStyleRecalc())
|
| + reattach();
|
| + clearNeedsStyleRecalc();
|
| + return;
|
| + }
|
|
|
| if (needsStyleRecalc()) {
|
| - if (renderer)
|
| - renderer->setText(dataImpl());
|
| - else
|
| - reattach();
|
| + renderer->setStyle(document()->styleResolver()->styleForText(this));
|
| + renderer->setText(dataImpl());
|
| + } else if (change != NoChange) {
|
| + renderer->setStyle(document()->styleResolver()->styleForText(this));
|
| }
|
| +
|
| clearNeedsStyleRecalc();
|
| }
|
|
|
|
|