Chromium Code Reviews| Index: third_party/WebKit/Source/wtf/text/AtomicString.h | 
| diff --git a/third_party/WebKit/Source/wtf/text/AtomicString.h b/third_party/WebKit/Source/wtf/text/AtomicString.h | 
| index abd6c58b0a7d7d555855180e60ca157404afa97d..9f79d42f60e46ebe422dc713014bb5991d028d70 100644 | 
| --- a/third_party/WebKit/Source/wtf/text/AtomicString.h | 
| +++ b/third_party/WebKit/Source/wtf/text/AtomicString.h | 
| @@ -26,6 +26,7 @@ | 
| #include "wtf/WTFExport.h" | 
| #include "wtf/text/CString.h" | 
| #include "wtf/text/WTFString.h" | 
| +#include <cstring> | 
| #include <iosfwd> | 
| namespace WTF { | 
| @@ -59,20 +60,6 @@ public: | 
| AtomicString(StringImpl* baseString, unsigned start, unsigned length) : m_string(add(baseString, start, length)) { } | 
| - enum ConstructFromLiteralTag { ConstructFromLiteral }; | 
| - AtomicString(const char* characters, unsigned length, ConstructFromLiteralTag) | 
| - : m_string(addFromLiteralData(characters, length)) | 
| - { | 
| - } | 
| - | 
| - template<unsigned charactersCount> | 
| - ALWAYS_INLINE AtomicString(const char (&characters)[charactersCount], ConstructFromLiteralTag) | 
| - : m_string(addFromLiteralData(characters, charactersCount - 1)) | 
| - { | 
| - static_assert(charactersCount > 1, "AtomicString FromLiteralData should not be empty"); | 
| - static_assert((charactersCount - 1 <= ((unsigned(~0) - sizeof(StringImpl)) / sizeof(LChar))), "AtomicString FromLiteralData cannot overflow"); | 
| - } | 
| - | 
| // Hash table deleted values, which are only constructed and never copied or destroyed. | 
| AtomicString(WTF::HashTableDeletedValueType) : m_string(WTF::HashTableDeletedValue) { } | 
| bool isHashTableDeletedValue() const { return m_string.isHashTableDeletedValue(); } | 
| @@ -161,7 +148,12 @@ public: | 
| private: | 
| String m_string; | 
| - static PassRefPtr<StringImpl> add(const LChar*); | 
| + ALWAYS_INLINE static PassRefPtr<StringImpl> add(const LChar* characters) | 
| 
 
Yuta Kitamura
2016/03/31 06:12:06
String literals have a type of |const char[N]|, so
 
esprehn
2016/03/31 18:04:12
Yeah you can do that, but that won't work for
con
 
 | 
| + { | 
| + if (!characters) | 
| 
 
dcheng
2016/03/31 05:54:36
null is a valid input to add()?! That sounds insan
 
esprehn
2016/03/31 18:04:12
I'm just doing what the old code did... I agree it
 
 | 
| + return nullptr; | 
| + return add(characters, strlen(reinterpret_cast<const char*>(characters))); | 
| + } | 
| ALWAYS_INLINE static PassRefPtr<StringImpl> add(const char* s) { return add(reinterpret_cast<const LChar*>(s)); } | 
| static PassRefPtr<StringImpl> add(const LChar*, unsigned length); | 
| static PassRefPtr<StringImpl> add(const UChar*, unsigned length); | 
| @@ -175,7 +167,6 @@ private: | 
| return r; | 
| return addSlowCase(r); | 
| } | 
| - static PassRefPtr<StringImpl> addFromLiteralData(const char* characters, unsigned length); | 
| static PassRefPtr<StringImpl> addSlowCase(StringImpl*); | 
| #if OS(MACOSX) | 
| static PassRefPtr<StringImpl> add(CFStringRef); |