Bug 130317

Summary: Remove most uses of deprecatedCharacters in WTF
Product: WebKit Reporter: Darin Adler <darin>
Component: Web Template FrameworkAssignee: Darin Adler <darin>
Status: RESOLVED FIXED    
Severity: Normal CC: andersca, benjamin, cmarcelo, commit-queue, kling, webkit-ews
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on: 130367    
Bug Blocks: 126854    
Attachments:
Description Flags
Patch kling: review+

Description Darin Adler 2014-03-16 20:16:48 PDT
Remove most uses of deprecatedCharacter in WTF
Comment 1 Darin Adler 2014-03-16 20:23:14 PDT
Created attachment 226873 [details]
Patch
Comment 2 Andreas Kling 2014-03-16 21:34:05 PDT
Comment on attachment 226873 [details]
Patch

r=me! (Read this earlier, was just waiting for mac ewe to go green.)
Comment 3 Darin Adler 2014-03-16 23:37:26 PDT
Committed r165721: <http://trac.webkit.org/changeset/165721>
Comment 4 Andreas Kling 2014-03-17 10:08:36 PDT
I think this may be asserting flakily on bots:

ASSERTION FAILED: !lookupForWriting(Extractor::extract(entry)).second
/Volumes/Data/slave/mavericks-debug/build/WebKitBuild/Debug/usr/local/include/wtf/HashTable.h(911) : ValueType *WTF::HashTable<WTF::StringImpl *, WTF::StringImpl *, WTF::IdentityExtractor, WTF::StringHash, WTF::HashTraits<WTF::StringImpl *>, WTF::HashTraits<WTF::StringImpl *> >::reinsert(ValueType &&) [Key = WTF::StringImpl *, Value = WTF::StringImpl *, Extractor = WTF::IdentityExtractor, HashFunctions = WTF::StringHash, Traits = WTF::HashTraits<WTF::StringImpl *>, KeyTraits = WTF::HashTraits<WTF::StringImpl *>]
1   0x10c719920 WTFCrash
2   0x10c357025 WTF::HashTable<WTF::StringImpl*, WTF::StringImpl*, WTF::IdentityExtractor, WTF::StringHash, WTF::HashTraits<WTF::StringImpl*>, WTF::HashTraits<WTF::StringImpl*> >::reinsert(WTF::StringImpl*&&)
3   0x10c356e78 WTF::HashTable<WTF::StringImpl*, WTF::StringImpl*, WTF::IdentityExtractor, WTF::StringHash, WTF::HashTraits<WTF::StringImpl*>, WTF::HashTraits<WTF::StringImpl*> >::rehash(int, WTF::StringImpl**)
4   0x10c355658 WTF::HashTable<WTF::StringImpl*, WTF::StringImpl*, WTF::IdentityExtractor, WTF::StringHash, WTF::HashTraits<WTF::StringImpl*>, WTF::HashTraits<WTF::StringImpl*> >::expand(WTF::StringImpl**)
5   0x10c71e26d WTF::HashTableAddResult<WTF::HashTableIterator<WTF::StringImpl*, WTF::StringImpl*, WTF::IdentityExtractor, WTF::StringHash, WTF::HashTraits<WTF::StringImpl*>, WTF::HashTraits<WTF::StringImpl*> > > WTF::HashTable<WTF::StringImpl*, WTF::StringImpl*, WTF::IdentityExtractor, WTF::StringHash, WTF::HashTraits<WTF::StringImpl*>, WTF::HashTraits<WTF::StringImpl*> >::add<WTF::IdentityHashTranslator<WTF::StringHash>, WTF::StringImpl* const&, WTF::StringImpl* const&>(WTF::StringImpl* const&&&, WTF::StringImpl* const&&&)
6   0x10c71e003 WTF::HashTable<WTF::StringImpl*, WTF::StringImpl*, WTF::IdentityExtractor, WTF::StringHash, WTF::HashTraits<WTF::StringImpl*>, WTF::HashTraits<WTF::StringImpl*> >::add(WTF::StringImpl* const&)
7   0x10c71c344 WTF::HashSet<WTF::StringImpl*, WTF::StringHash, WTF::HashTraits<WTF::StringImpl*> >::add(WTF::StringImpl* const&)
8   0x10c71b6af WTF::AtomicString::addSlowCase(WTF::StringImpl*)
9   0x10d89a5f0 WTF::AtomicString::add(WTF::StringImpl*)
10  0x10d89a520 WTF::AtomicString::AtomicString(WTF::String const&)
11  0x10d8927ad WTF::AtomicString::AtomicString(WTF::String const&)
12  0x10e7201e6 WebCore::jsElementPrototypeFunctionSetAttributeNS(JSC::ExecState*)
13  0x2be695a01034
14  0x2be695a0955a
15  0x2be695a0a140
16  0x10c535db6 llint_op_call
17  0x10c52fe74 callToJavaScript
18  0x10c3cb41d JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
19  0x10c3af828 JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*)
20  0x10c0e308f JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&, JSC::JSValue, JSC::JSValue*)
21  0x10e8b50b2 WebCore::JSMainThreadExecState::evaluate(JSC::ExecState*, JSC::SourceCode const&, JSC::JSValue, JSC::JSValue*)
22  0x10f2b345d WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&, WebCore::DOMWrapperWorld&)
23  0x10f2b35a4 WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&)
24  0x10f2c325b WebCore::ScriptElement::executeScript(WebCore::ScriptSourceCode const&)
25  0x10f2c1fe0 WebCore::ScriptElement::prepareScript(WTF::TextPosition const&, WebCore::ScriptElement::LegacyTypeSupport)
26  0x10e212979 WebCore::HTMLScriptRunner::runScript(WebCore::Element*, WTF::TextPosition const&)
27  0x10e212789 WebCore::HTMLScriptRunner::execute(WTF::PassRefPtr<WebCore::Element>, WTF::TextPosition const&)
28  0x10e158dad WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder()
29  0x10e158ef8 WebCore::HTMLDocumentParser::canTakeNextToken(WebCore::HTMLDocumentParser::SynchronousMode, WebCore::PumpSession&)
30  0x10e15807f WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode)
31  0x10e157b09 WebCore::HTMLDocumentParser::pumpTokenizerIfPossible(WebCore::HTMLDocumentParser::SynchronousMode)
Comment 5 Benjamin Poulain 2014-03-17 15:55:52 PDT
I cannot find Darin, let's rollout until he can have a look.
Comment 6 WebKit Commit Bot 2014-03-17 16:00:40 PDT
Re-opened since this is blocked by bug 130367
Comment 7 Darin Adler 2014-03-17 19:56:50 PDT
Comment on attachment 226873 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=226873&action=review

> Source/WTF/wtf/unicode/UTF8.cpp:473
> +        if ((b[0] & 0xE0) != 0xC0 || (b[1] & 0xC0) != 80)

Found the problem. This says "80" instead of "0x80"!
Comment 8 Darin Adler 2014-03-17 20:00:32 PDT
Committed r165792: <http://trac.webkit.org/changeset/165792>