summaryrefslogtreecommitdiffstats
path: root/Source/JavaScriptCore/wtf/text/AtomicString.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/wtf/text/AtomicString.cpp')
-rw-r--r--Source/JavaScriptCore/wtf/text/AtomicString.cpp15
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