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); |