| Index: third_party/WebKit/Source/platform/inspector_protocol/String16STL.h
|
| diff --git a/third_party/WebKit/Source/platform/inspector_protocol/String16STL.h b/third_party/WebKit/Source/platform/inspector_protocol/String16STL.h
|
| index 9e6f41f3a2f7f34fac1159c25af7a57421248e73..51da506dafd89898962be597a737eb2ecc5b7539 100644
|
| --- a/third_party/WebKit/Source/platform/inspector_protocol/String16STL.h
|
| +++ b/third_party/WebKit/Source/platform/inspector_protocol/String16STL.h
|
| @@ -13,21 +13,17 @@
|
| #include <vector>
|
|
|
| using UChar = uint16_t;
|
| -using UChar32 = uint32_t;
|
| -using LChar = unsigned char;
|
| -// presubmit: allow wstring
|
| -using wstring = std::basic_string<UChar>;
|
| -const size_t kNotFound = static_cast<size_t>(-1);
|
|
|
| namespace blink {
|
| namespace protocol {
|
|
|
| -class String16 {
|
| +class String16 : public String16Base<String16, UChar> {
|
| public:
|
| + static const size_t kNotFound = static_cast<size_t>(-1);
|
| +
|
| String16() { }
|
| String16(const String16& other) : m_impl(other.m_impl) { }
|
| - // presubmit: allow wstring
|
| - String16(const wstring& impl) : m_impl(impl) { }
|
| + String16(const UChar* characters, size_t size) : m_impl(characters, size) { }
|
| String16(const UChar* characters) : m_impl(characters) { }
|
| String16(const char* characters) : String16(characters, std::strlen(characters)) { }
|
| String16(const char* characters, size_t size)
|
| @@ -36,88 +32,22 @@ public:
|
| for (size_t i = 0; i < size; ++i)
|
| m_impl[i] = characters[i];
|
| }
|
| - String16(const UChar* characters, size_t size) : m_impl(characters, size) { }
|
| - String16 isolatedCopy() const { return String16(m_impl); }
|
|
|
| - size_t charactersSizeInBytes() const { return m_impl.size() * sizeof(UChar); }
|
| + String16 isolatedCopy() const { return String16(m_impl); }
|
| const UChar* characters16() const { return m_impl.c_str(); }
|
| - std::string utf8() const;
|
| - static String16 fromUTF8(const char* stringStart, size_t length);
|
| - static String16 fromInteger(int i) { return String16(String16::intToString(i).c_str()); }
|
| - static String16 fromDouble(double d) { return String16(String16::doubleToString(d).c_str()); }
|
| - static String16 fromDoubleFixedPrecision(double d, int len) { return String16(String16::doubleToString(d).c_str()); }
|
| -
|
| - static double charactersToDouble(const UChar* characters, size_t length, bool* ok = 0)
|
| - {
|
| - std::string str;
|
| - str.resize(length);
|
| - for (size_t i = 0; i < length; ++i)
|
| - str[i] = static_cast<char>(characters[i]);
|
| -
|
| - const char* buffer = str.c_str();
|
| - char* endptr;
|
| - double result = strtod(buffer, &endptr);
|
| - if (ok)
|
| - *ok = buffer + length == endptr;
|
| - return result;
|
| - }
|
| -
|
| - String16 substring(unsigned pos, unsigned len = 0xFFFFFFFF) const
|
| - {
|
| - return String16(m_impl.substr(pos, len));
|
| - }
|
| -
|
| - String16 stripWhiteSpace() const;
|
| -
|
| - int toInt(bool* ok = 0) const
|
| - {
|
| - size_t length = m_impl.length();
|
| - std::string str;
|
| - str.resize(length);
|
| - for (size_t i = 0; i < length; ++i)
|
| - str[i] = static_cast<char>(m_impl[i]);
|
| -
|
| - const char* buffer = str.c_str();
|
| - char* endptr;
|
| - int result = strtol(buffer, &endptr, 10);
|
| - if (ok)
|
| - *ok = buffer + length == endptr;
|
| - return result;
|
| - }
|
| -
|
| size_t length() const { return m_impl.length(); }
|
| bool isEmpty() const { return !m_impl.length(); }
|
| UChar operator[](unsigned index) const { return m_impl[index]; }
|
| + String16 substring(unsigned pos, unsigned len = UINT_MAX) const { return String16(m_impl.substr(pos, len)); }
|
| + size_t find(const String16& str, unsigned start = 0) const { return m_impl.find(str.m_impl, start); }
|
| + size_t reverseFind(const String16& str, unsigned start = UINT_MAX) const { return m_impl.rfind(str.m_impl, start); }
|
|
|
| - size_t find(UChar c, unsigned start = 0) const
|
| - {
|
| - return m_impl.find(c, start);
|
| - }
|
| -
|
| - size_t find(const String16& str, unsigned start = 0) const
|
| - {
|
| - return m_impl.find(str.m_impl, start);
|
| - }
|
| -
|
| - size_t reverseFind(const String16& str, unsigned start = 0xFFFFFFFF) const
|
| - {
|
| - return m_impl.rfind(str.m_impl, start);
|
| - }
|
| -
|
| - bool startWith(const String16& s) const
|
| - {
|
| - if (m_impl.length() < s.m_impl.length())
|
| - return false;
|
| - return m_impl.substr(0, s.m_impl.length()) == s.m_impl;
|
| - }
|
| -
|
| - bool endsWith(UChar character) const
|
| - {
|
| - return m_impl.length() && m_impl[m_impl.length() - 1] == character;
|
| - }
|
| + // Convenience methods.
|
| + std::string utf8() const;
|
| + static String16 fromUTF8(const char* stringStart, size_t length);
|
|
|
| - // presubmit: allow wstring
|
| - const wstring& impl() const { return m_impl; }
|
| + const std::basic_string<UChar>& impl() const { return m_impl; }
|
| + explicit String16(const std::basic_string<UChar>& impl) : m_impl(impl) { }
|
|
|
| std::size_t hash() const
|
| {
|
| @@ -132,123 +62,26 @@ public:
|
| }
|
|
|
| private:
|
| - static std::string intToString(int);
|
| - static std::string doubleToString(double);
|
| - // presubmit: allow wstring
|
| - wstring m_impl;
|
| + std::basic_string<UChar> m_impl;
|
| mutable bool has_hash = false;
|
| mutable std::size_t hash_code = 0;
|
| };
|
|
|
| -static inline bool isSpaceOrNewline(UChar c)
|
| -{
|
| - return std::isspace(c); // NOLINT
|
| -}
|
| -
|
| -class String16Builder {
|
| -public:
|
| - String16Builder() { }
|
| -
|
| - void append(const String16& str)
|
| - {
|
| - m_impl += str.impl();
|
| - }
|
| -
|
| - void append(UChar c)
|
| - {
|
| - m_impl += c;
|
| - }
|
| -
|
| - void append(LChar c)
|
| - {
|
| - m_impl += c;
|
| - }
|
| -
|
| - void append(char c)
|
| - {
|
| - m_impl += c;
|
| - }
|
| -
|
| - void appendNumber(int i)
|
| - {
|
| - m_impl = m_impl + String16::fromInteger(i).impl();
|
| - }
|
| -
|
| - void appendNumber(double d)
|
| - {
|
| - m_impl = m_impl + String16::fromDoubleFixedPrecision(d, 6).impl();
|
| - }
|
| -
|
| - void append(const UChar* c, size_t length)
|
| - {
|
| - // presubmit: allow wstring
|
| - m_impl += wstring(c, length);
|
| - }
|
| -
|
| - void append(const char* c, size_t length)
|
| - {
|
| - m_impl += String16(c, length).impl();
|
| - }
|
| -
|
| - String16 toString()
|
| - {
|
| - return String16(m_impl);
|
| - }
|
| -
|
| - void reserveCapacity(unsigned newCapacity)
|
| - {
|
| - }
|
| -
|
| -private:
|
| - // presubmit: allow wstring
|
| - wstring m_impl;
|
| -};
|
| -
|
| inline bool operator==(const String16& a, const String16& b) { return a.impl() == b.impl(); }
|
| inline bool operator!=(const String16& a, const String16& b) { return a.impl() != b.impl(); }
|
| inline bool operator==(const String16& a, const char* b) { return a.impl() == String16(b).impl(); }
|
| -inline bool operator<(const String16& a, const String16& b) { return a.impl() < b.impl(); }
|
| -
|
| -inline String16 operator+(const String16& a, const char* b)
|
| -{
|
| - return String16(a.impl() + String16(b).impl());
|
| -}
|
| -
|
| -inline String16 operator+(const char* a, const String16& b)
|
| -{
|
| - return String16(String16(a).impl() + b.impl());
|
| -}
|
| -
|
| -inline String16 operator+(const String16& a, const String16& b)
|
| -{
|
| - return String16(a.impl() + b.impl());
|
| -}
|
| +inline String16 operator+(const String16& a, const char* b) { return String16(a.impl() + String16(b).impl()); }
|
| +inline String16 operator+(const char* a, const String16& b) { return String16(String16(a).impl() + b.impl()); }
|
| +inline String16 operator+(const String16& a, const String16& b) { return String16(a.impl() + b.impl()); }
|
|
|
| } // namespace protocol
|
| } // namespace blink
|
|
|
| -using String16 = blink::protocol::String16;
|
| -using String16Builder = blink::protocol::String16Builder;
|
| -
|
| -
|
| -namespace WTF {
|
| -// Interim solution for those headers that reference WTF::String for overrides.
|
| -// It does nothing. If the code actually relies on WTF:String, it will not
|
| -// compile!
|
| -// TODO(eostroukhov): Eradicate
|
| -class String {
|
| -public:
|
| - String() {};
|
| - String(const String16& other) {};
|
| - operator String16() const { return String16(); };
|
| -};
|
| -} // namespace WTF
|
| -
|
| #if !defined(__APPLE__) || defined(_LIBCPP_VERSION)
|
|
|
| namespace std {
|
| -template<> struct hash<String16> {
|
| - std::size_t operator()(const String16& string) const
|
| +template<> struct hash<blink::protocol::String16> {
|
| + std::size_t operator()(const blink::protocol::String16& string) const
|
| {
|
| return string.hash();
|
| }
|
| @@ -258,6 +91,12 @@ template<> struct hash<String16> {
|
|
|
| #endif // !defined(__APPLE__) || defined(_LIBCPP_VERSION)
|
|
|
| -using String = WTF::String;
|
| +class InspectorProtocolConvenienceStringType {
|
| +public:
|
| + // This class should not be ever instantiated, so we don't implement constructors.
|
| + InspectorProtocolConvenienceStringType();
|
| + InspectorProtocolConvenienceStringType(const blink::protocol::String16& other);
|
| + operator blink::protocol::String16() const { return blink::protocol::String16(); };
|
| +};
|
|
|
| #endif // !defined(String16STL_h)
|
|
|