summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/platform/wtf/text/string_utf8_adaptor.h
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-05-24 11:40:17 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-05-24 12:42:11 +0000
commit5d87695f37678f96492b258bbab36486c59866b4 (patch)
treebe9783bbaf04fb930c4d74ca9c00b5e7954c8bc6 /chromium/third_party/blink/renderer/platform/wtf/text/string_utf8_adaptor.h
parent6c11fb357ec39bf087b8b632e2b1e375aef1b38b (diff)
downloadqtwebengine-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.h39
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