Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1318)

Unified Diff: Source/core/rendering/RenderTextFragment.cpp

Issue 679593004: Refactor RenderQuote to not delete renderers on style change. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/rendering/RenderTextFragment.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/rendering/RenderTextFragment.cpp
diff --git a/Source/core/rendering/RenderTextFragment.cpp b/Source/core/rendering/RenderTextFragment.cpp
index 20f518f411efb627f41165815671c59eefc80566..1d274c83edadcc36139f909a24ac06316af0a676 100644
--- a/Source/core/rendering/RenderTextFragment.cpp
+++ b/Source/core/rendering/RenderTextFragment.cpp
@@ -33,6 +33,7 @@ RenderTextFragment::RenderTextFragment(Node* node, StringImpl* str, int startOff
: RenderText(node, str ? str->substring(startOffset, length) : PassRefPtr<StringImpl>(nullptr))
, m_start(startOffset)
, m_end(length)
+ , m_contentString(str)
, m_firstLetter(nullptr)
{
}
@@ -65,10 +66,17 @@ RenderText* RenderTextFragment::firstRenderTextInFirstLetter() const
return 0;
}
+void RenderTextFragment::setContentString(StringImpl* str)
+{
+ m_contentString = str;
+ setText(str);
+}
+
PassRefPtr<StringImpl> RenderTextFragment::originalText() const
{
- Node* e = node();
- RefPtr<StringImpl> result = ((e && e->isTextNode()) ? toText(e)->dataImpl() : contentString());
+ RefPtr<StringImpl> result = RenderText::originalText();
+ if (!result)
+ result = m_contentString;
if (!result)
return nullptr;
return result->substring(start(), end());
@@ -102,7 +110,6 @@ void RenderTextFragment::setText(PassRefPtr<StringImpl> text, bool force)
// layout. crbug.com/370458
DeprecatedDisableModifyRenderTreeStructureAsserts disabler;
- ASSERT(!m_contentString);
m_firstLetter->destroy();
m_firstLetter = nullptr;
if (Node* t = node()) {
@@ -122,8 +129,9 @@ void RenderTextFragment::transformText()
UChar RenderTextFragment::previousCharacter() const
{
if (start()) {
- Node* e = node();
- StringImpl* original = ((e && e->isTextNode()) ? toText(e)->dataImpl() : contentString());
+ RefPtr<StringImpl> original = RenderText::originalText();
+ if (!original)
+ original = m_contentString;
if (original && start() <= original->length())
return (*original)[start() - 1];
}
« no previous file with comments | « Source/core/rendering/RenderTextFragment.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698