diff options
Diffstat (limited to 'Source/JavaScriptCore/wtf/text/AtomicString.cpp')
-rw-r--r-- | Source/JavaScriptCore/wtf/text/AtomicString.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/Source/JavaScriptCore/wtf/text/AtomicString.cpp b/Source/JavaScriptCore/wtf/text/AtomicString.cpp index dd8d66c..e0a866d 100644 --- a/Source/JavaScriptCore/wtf/text/AtomicString.cpp +++ b/Source/JavaScriptCore/wtf/text/AtomicString.cpp @@ -376,7 +376,20 @@ AtomicString AtomicString::fromUTF8(const char* characters) { if (!characters) return AtomicString(); - return fromUTF8(characters, strlen(characters)); + + if (!*characters) + return emptyAtom; + + HashAndUTF8Characters buffer; + buffer.characters = characters; + buffer.hash = calculateStringHashAndLengthFromUTF8(characters, buffer.length, buffer.utf16Length); + + if (!buffer.hash) + return AtomicString(); + + AtomicString atomicString; + atomicString.m_string = addToStringTable<HashAndUTF8Characters, HashAndUTF8CharactersTranslator>(buffer); + return atomicString; } } // namespace WTF |