Changeset 142535 in webkit
- Timestamp:
- Feb 11, 2013 3:52:39 PM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 1 deleted
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r142534 r142535 1 2013-02-11 Eric Seidel <eric@webkit.org> 2 3 Fold MarkupTokenizerBase into HTMLTokenizer now that it is the only subclass 4 https://bugs.webkit.org/show_bug.cgi?id=109499 5 6 Reviewed by Adam Barth. 7 8 For great justice. And sanity. 9 Epic amount of template code deleted. 10 11 * GNUmakefile.list.am: 12 * Target.pri: 13 * WebCore.gypi: 14 * WebCore.vcproj/WebCore.vcproj: 15 * WebCore.vcxproj/WebCore.vcxproj: 16 * WebCore.vcxproj/WebCore.vcxproj.filters: 17 * WebCore.xcodeproj/project.pbxproj: 18 * html/parser/HTMLTokenizer.cpp: 19 (WebCore::HTMLTokenizer::HTMLTokenizer): 20 * html/parser/HTMLTokenizer.h: 21 (HTMLTokenizer): 22 (Checkpoint): 23 (WebCore::HTMLTokenizer::state): 24 (WebCore::HTMLTokenizer::setState): 25 (WebCore::HTMLTokenizer::shouldSkipNullCharacters): 26 (WebCore::HTMLTokenizer::bufferCharacter): 27 (WebCore::HTMLTokenizer::emitAndResumeIn): 28 (WebCore::HTMLTokenizer::emitAndReconsumeIn): 29 (WebCore::HTMLTokenizer::emitEndOfFile): 30 (WebCore::HTMLTokenizer::haveBufferedCharacterToken): 31 * xml/parser/MarkupTokenizerBase.h: Removed. 32 1 33 2013-02-11 Anton Vayvod <avayvod@chromium.org> 2 34 -
trunk/Source/WebCore/GNUmakefile.list.am
r142522 r142535 4710 4710 Source/WebCore/workers/WorkerThread.h \ 4711 4711 Source/WebCore/xml/parser/CharacterReferenceParserInlines.h \ 4712 Source/WebCore/xml/parser/MarkupTokenizerBase.h \4713 4712 Source/WebCore/xml/parser/MarkupTokenizerInlines.h \ 4714 4713 Source/WebCore/xml/parser/XMLDocumentParser.cpp \ -
trunk/Source/WebCore/Target.pri
r142522 r142535 2851 2851 workers/WorkerThread.h \ 2852 2852 xml/parser/CharacterReferenceParserInlines.h \ 2853 xml/parser/MarkupTokenizerBase.h \2854 2853 xml/parser/MarkupTokenizerInlines.h \ 2855 2854 xml/parser/XMLDocumentParser.h \ -
trunk/Source/WebCore/WebCore.gypi
r142522 r142535 2671 2671 'workers/chromium/WorkerContextProxyChromium.h', 2672 2672 'xml/parser/CharacterReferenceParserInlines.h', 2673 'xml/parser/MarkupTokenizerBase.h',2674 2673 'xml/parser/MarkupTokenizerInlines.h', 2675 2674 'xml/parser/XMLDocumentParser.cpp', -
trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj
r142522 r142535 49091 49091 > 49092 49092 <File 49093 RelativePath="..\xml\parser\MarkupTokenizerBase.h"49094 >49095 </File>49096 <File49097 49093 RelativePath="..\xml\parser\MarkupTokenizerInlines.h" 49098 49094 > -
trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj
r142522 r142535 7514 7514 <ClInclude Include="..\xml\XSLTProcessor.h" /> 7515 7515 <ClInclude Include="..\xml\XSLTUnicodeSort.h" /> 7516 <ClInclude Include="..\xml\parser\MarkupTokenizerBase.h" />7517 7516 <ClInclude Include="..\xml\parser\MarkupTokenizerInlines.h" /> 7518 7517 <ClInclude Include="..\xml\parser\XMLDocumentParser.h" /> -
trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters
r142522 r142535 11314 11314 <Filter>xml</Filter> 11315 11315 </ClInclude> 11316 <ClInclude Include="..\xml\parser\MarkupTokenizerBase.h">11317 <Filter>xml\parser</Filter>11318 </ClInclude>11319 11316 <ClInclude Include="..\xml\parser\MarkupTokenizerInlines.h"> 11320 11317 <Filter>xml\parser</Filter> -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r142522 r142535 55 55 00B9318C13BA8DCC0035A948 /* XMLDocumentParserScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 00B9318613BA867F0035A948 /* XMLDocumentParserScope.h */; }; 56 56 00C60E3F13D76D7E0092A275 /* MarkupTokenizerInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 00C60E3E13D76D7E0092A275 /* MarkupTokenizerInlines.h */; }; 57 00C60E4213D797AE0092A275 /* MarkupTokenizerBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 00C60E4113D797AE0092A275 /* MarkupTokenizerBase.h */; };58 57 01D3CF8214BD0A3000FE9970 /* WebGLContextGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 01D3CF7C14BD0A3000FE9970 /* WebGLContextGroup.cpp */; }; 59 58 01D3CF8314BD0A3000FE9970 /* WebGLContextGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = 01D3CF7D14BD0A3000FE9970 /* WebGLContextGroup.h */; }; … … 7300 7299 00B9318613BA867F0035A948 /* XMLDocumentParserScope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XMLDocumentParserScope.h; sourceTree = "<group>"; }; 7301 7300 00C60E3E13D76D7E0092A275 /* MarkupTokenizerInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MarkupTokenizerInlines.h; sourceTree = "<group>"; }; 7302 00C60E4113D797AE0092A275 /* MarkupTokenizerBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MarkupTokenizerBase.h; sourceTree = "<group>"; };7303 7301 01D3CF7C14BD0A3000FE9970 /* WebGLContextGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebGLContextGroup.cpp; path = canvas/WebGLContextGroup.cpp; sourceTree = "<group>"; }; 7304 7302 01D3CF7D14BD0A3000FE9970 /* WebGLContextGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebGLContextGroup.h; path = canvas/WebGLContextGroup.h; sourceTree = "<group>"; }; … … 14570 14568 children = ( 14571 14569 97B8FFCF16AE7F920038388D /* CharacterReferenceParserInlines.h */, 14572 00C60E4113D797AE0092A275 /* MarkupTokenizerBase.h */,14573 14570 00C60E3E13D76D7E0092A275 /* MarkupTokenizerInlines.h */, 14574 14571 00B9318113BA867F0035A948 /* XMLDocumentParser.cpp */, … … 25300 25297 93309DF8099E64920056E581 /* markup.h in Headers */, 25301 25298 9728C3141268E4390041E89B /* MarkupAccumulator.h in Headers */, 25302 00C60E4213D797AE0092A275 /* MarkupTokenizerBase.h in Headers */,25303 25299 00C60E3F13D76D7E0092A275 /* MarkupTokenizerInlines.h in Headers */, 25304 25300 FABE72F51059C1EB00D999DD /* MathMLElement.h in Headers */, -
trunk/Source/WebCore/html/parser/HTMLTokenizer.cpp
r142497 r142535 106 106 107 107 HTMLTokenizer::HTMLTokenizer(const HTMLParserOptions& options) 108 : m_options(options) 108 : m_inputStreamPreprocessor(this) 109 , m_options(options) 109 110 { 110 111 reset(); … … 114 115 { 115 116 } 116 117 template<>118 inline bool MarkupTokenizerBase<HTMLToken, HTMLTokenizerState>::shouldSkipNullCharacters() const119 {120 return !m_forceNullCharacterReplacement121 && (m_state == HTMLTokenizerState::DataState122 || m_state == HTMLTokenizerState::RCDATAState123 || m_state == HTMLTokenizerState::RAWTEXTState);124 }125 126 117 127 118 void HTMLTokenizer::reset() -
trunk/Source/WebCore/html/parser/HTMLTokenizer.h
r139497 r142535 30 30 #include "HTMLParserOptions.h" 31 31 #include "HTMLToken.h" 32 #include " MarkupTokenizerBase.h"32 #include "InputStreamPreprocessor.h" 33 33 #include "SegmentedString.h" 34 34 … … 116 116 }; 117 117 118 class HTMLTokenizer : public MarkupTokenizerBase<HTMLToken, HTMLTokenizerState>{118 class HTMLTokenizer { 119 119 WTF_MAKE_NONCOPYABLE(HTMLTokenizer); 120 120 WTF_MAKE_FAST_ALLOCATED; … … 125 125 void reset(); 126 126 127 // FIXME: HTMLTokenizerState::State should just be moved back into this class. 128 typedef HTMLTokenizerState::State State; 129 127 130 #if ENABLE(THREADED_HTML_PARSER) 128 131 129 132 struct Checkpoint { 130 133 HTMLParserOptions options; 131 HTMLTokenizerState::State state;134 State state; 132 135 UChar additionalAllowedCharacter; 133 136 bool skipNextNewLine; … … 192 195 void setShouldAllowCDATA(bool value) { m_shouldAllowCDATA = value; } 193 196 197 State state() const { return m_state; } 198 void setState(State state) { m_state = state; } 199 200 inline bool shouldSkipNullCharacters() const 201 { 202 return !m_forceNullCharacterReplacement 203 && (m_state == HTMLTokenizerState::DataState 204 || m_state == HTMLTokenizerState::RCDATAState 205 || m_state == HTMLTokenizerState::RAWTEXTState); 206 } 207 194 208 private: 195 209 explicit HTMLTokenizer(const HTMLParserOptions&); … … 198 212 199 213 inline void parseError(); 214 215 inline void bufferCharacter(UChar character) 216 { 217 ASSERT(character != kEndOfFileMarker); 218 m_token->ensureIsCharacterToken(); 219 m_token->appendToCharacter(character); 220 } 221 222 inline bool emitAndResumeIn(SegmentedString& source, State state) 223 { 224 saveEndTagNameIfNeeded(); 225 m_state = state; 226 source.advanceAndUpdateLineNumber(); 227 return true; 228 } 200 229 201 inline bool emitAndRe sumeIn(SegmentedString& source, HTMLTokenizerState::State state)230 inline bool emitAndReconsumeIn(SegmentedString& source, State state) 202 231 { 203 232 saveEndTagNameIfNeeded(); 204 return MarkupTokenizerBase<HTMLToken, HTMLTokenizerState>::emitAndResumeIn(source, state); 205 } 206 207 inline bool emitAndReconsumeIn(SegmentedString& source, HTMLTokenizerState::State state) 208 { 209 saveEndTagNameIfNeeded(); 210 return MarkupTokenizerBase<HTMLToken, HTMLTokenizerState>::emitAndReconsumeIn(source, state); 211 } 212 213 inline bool flushEmitAndResumeIn(SegmentedString&, HTMLTokenizerState::State); 233 m_state = state; 234 return true; 235 } 236 237 inline bool emitEndOfFile(SegmentedString& source) 238 { 239 if (haveBufferedCharacterToken()) 240 return true; 241 m_state = HTMLTokenizerState::DataState; 242 source.advanceAndUpdateLineNumber(); 243 m_token->clear(); 244 m_token->makeEndOfFile(); 245 return true; 246 } 247 248 inline bool flushEmitAndResumeIn(SegmentedString&, State); 214 249 215 250 // Return whether we need to emit a character token before dealing with … … 231 266 inline bool isAppropriateEndTag(); 232 267 268 269 inline bool haveBufferedCharacterToken() 270 { 271 return m_token->type() == HTMLToken::Type::Character; 272 } 273 274 State m_state; 275 bool m_forceNullCharacterReplacement; 276 bool m_shouldAllowCDATA; 277 278 // m_token is owned by the caller. If nextToken is not on the stack, 279 // this member might be pointing to unallocated memory. 280 HTMLToken* m_token; 281 282 // http://www.whatwg.org/specs/web-apps/current-work/#additional-allowed-character 283 UChar m_additionalAllowedCharacter; 284 285 // http://www.whatwg.org/specs/web-apps/current-work/#preprocessing-the-input-stream 286 InputStreamPreprocessor<HTMLTokenizer> m_inputStreamPreprocessor; 287 233 288 Vector<UChar, 32> m_appropriateEndTagName; 234 235 bool m_shouldAllowCDATA;236 289 237 290 // http://www.whatwg.org/specs/web-apps/current-work/#temporary-buffer
Note: See TracChangeset
for help on using the changeset viewer.