diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-05-24 11:40:17 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-05-24 12:42:11 +0000 |
commit | 5d87695f37678f96492b258bbab36486c59866b4 (patch) | |
tree | be9783bbaf04fb930c4d74ca9c00b5e7954c8bc6 /chromium/third_party/blink/renderer/platform/wtf/text/string_utf8_adaptor.h | |
parent | 6c11fb357ec39bf087b8b632e2b1e375aef1b38b (diff) | |
download | qtwebengine-chromium-5d87695f37678f96492b258bbab36486c59866b4.tar.gz |
BASELINE: Update Chromium to 75.0.3770.56
Change-Id: I86d2007fd27a45d5797eee06f4c9369b8b50ac4f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/third_party/blink/renderer/platform/wtf/text/string_utf8_adaptor.h')
-rw-r--r-- | chromium/third_party/blink/renderer/platform/wtf/text/string_utf8_adaptor.h | 39 |
1 files changed, 15 insertions, 24 deletions
diff --git a/chromium/third_party/blink/renderer/platform/wtf/text/string_utf8_adaptor.h b/chromium/third_party/blink/renderer/platform/wtf/text/string_utf8_adaptor.h index 8babc9155bb..76b9df3bc96 100644 --- a/chromium/third_party/blink/renderer/platform/wtf/text/string_utf8_adaptor.h +++ b/chromium/third_party/blink/renderer/platform/wtf/text/string_utf8_adaptor.h @@ -32,50 +32,41 @@ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_STRING_UTF8_ADAPTOR_H_ #include "base/strings/string_piece.h" -#include "third_party/blink/renderer/platform/wtf/allocator.h" #include "third_party/blink/renderer/platform/wtf/text/cstring.h" #include "third_party/blink/renderer/platform/wtf/text/text_encoding.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" +#include "third_party/blink/renderer/platform/wtf/wtf_export.h" namespace WTF { // This class lets you get UTF-8 data out of a String without mallocing a // separate buffer to hold the data if the String happens to be 8 bit and // contain only ASCII characters. -class StringUTF8Adaptor final { +class WTF_EXPORT StringUTF8Adaptor final { DISALLOW_NEW(); public: StringUTF8Adaptor(const String& string, - UTF8ConversionMode mode = kLenientUTF8Conversion) - : data_(nullptr), length_(0) { - if (string.IsEmpty()) - return; - // Unfortunately, 8 bit WTFStrings are encoded in Latin-1 and GURL uses - // UTF-8 when processing 8 bit strings. If |relative| is entirely ASCII, we - // luck out and can avoid mallocing a new buffer to hold the UTF-8 data - // because UTF-8 and Latin-1 use the same code units for ASCII code points. - if (string.Is8Bit() && string.ContainsOnlyASCIIOrEmpty()) { - data_ = reinterpret_cast<const char*>(string.Characters8()); - length_ = string.length(); - } else { - utf8_buffer_ = string.Utf8(mode); - data_ = utf8_buffer_.data(); - length_ = utf8_buffer_.length(); - } - } + UTF8ConversionMode mode = kLenientUTF8Conversion); + ~StringUTF8Adaptor(); - const char* Data() const { return data_; } - wtf_size_t length() const { return length_; } + const char* data() const { return data_; } + wtf_size_t size() const { return size_; } base::StringPiece AsStringPiece() const { - return base::StringPiece(data_, length_); + return base::StringPiece(data_, size_); + } + + std::string AsStdString() { + // TODO(dcheng): it might be nice to store a std::string and avoid the + // double conversion... + return std::string(data_, size_); } private: CString utf8_buffer_; - const char* data_; - wtf_size_t length_; + const char* data_ = nullptr; + wtf_size_t size_ = 0; }; } // namespace WTF |