diff options
author | Ben Murdoch <benm@google.com> | 2010-07-22 15:37:06 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2010-07-27 10:20:25 +0100 |
commit | 967717af5423377c967781471ee106e2bb4e11c8 (patch) | |
tree | 1e701dc0a12f7f07cce1df4a7681717de77a211b /WebCore/html/HTMLToken.h | |
parent | dcc30a9fca45f634b1d3a12b276d3a0ccce99fc3 (diff) | |
download | external_webkit-967717af5423377c967781471ee106e2bb4e11c8.zip external_webkit-967717af5423377c967781471ee106e2bb4e11c8.tar.gz external_webkit-967717af5423377c967781471ee106e2bb4e11c8.tar.bz2 |
Merge WebKit at r63859 : Initial merge by git.
Change-Id: Ie8096c63ec7c991c9a9cba8bdd9c3b74a3b8ed62
Diffstat (limited to 'WebCore/html/HTMLToken.h')
-rw-r--r-- | WebCore/html/HTMLToken.h | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/WebCore/html/HTMLToken.h b/WebCore/html/HTMLToken.h index c2db87d..d2987f4 100644 --- a/WebCore/html/HTMLToken.h +++ b/WebCore/html/HTMLToken.h @@ -339,7 +339,7 @@ public: m_data = String(token.comment().data(), token.comment().size()); break; case HTMLToken::Character: - m_data = String(token.characters().data(), token.characters().size()); + m_externalCharacters = &token.characters(); break; } } @@ -352,12 +352,6 @@ public: ASSERT(usesName()); } - explicit AtomicHTMLToken(const String& characters) - : m_type(HTMLToken::Character) - , m_data(characters) - { - } - HTMLToken::Type type() const { return m_type; } const AtomicString& name() const @@ -398,10 +392,10 @@ public: return m_attributes.release(); } - const String& characters() const + const HTMLToken::DataVector& characters() const { ASSERT(m_type == HTMLToken::Character); - return m_data; + return *m_externalCharacters; } const String& comment() const @@ -446,10 +440,19 @@ private: // "name" for DOCTYPE, StartTag, and EndTag AtomicString m_name; - // "characters" for Character // "data" for Comment String m_data; + // "characters" for Character + // + // We don't want to copy the the characters out of the HTMLToken, so we + // keep a pointer to its buffer instead. This buffer is owned by the + // HTMLToken and causes a lifetime dependence between these objects. + // + // FIXME: Add a mechanism for "internalizing" the characters when the + // HTMLToken is destructed. + const HTMLToken::DataVector* m_externalCharacters; + // For DOCTYPE OwnPtr<HTMLToken::DoctypeData> m_doctypeData; |