Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(282)

Unified Diff: public/platform/WebString.h

Issue 15866003: Teach WebString about 8 bit strings (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Better std::string pattern Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: public/platform/WebString.h
diff --git a/public/platform/WebString.h b/public/platform/WebString.h
index c336dd113dcd61aefae52a9808b6c57275f3b9df..d85c10b5be16b0921510ea2d84b6ed467b6c8b80 100644
--- a/public/platform/WebString.h
+++ b/public/platform/WebString.h
@@ -76,6 +76,7 @@ public:
WEBKIT_EXPORT bool equals(const WebString& s) const;
WEBKIT_EXPORT size_t length() const;
+ // Deprecated: This function will be removed once all its callers are gone.
WEBKIT_EXPORT const WebUChar* data() const;
bool isEmpty() const { return !length(); }
@@ -122,7 +123,14 @@ public:
operator string16() const
{
size_t len = length();
darin (slow to review) 2013/05/24 06:12:53 nit: this seems like a lot of code to inline into
- return len ? string16(data(), len) : string16();
+ if (!len)
+ return string16();
+ if (is8Bit()) {
+ const WebLChar* data = this->data8();
+ return string16(data, data + len);
+ }
+ const WebUChar* data = this->data16();
+ return string16(data, data + len);
}
WebString(const NullableString16& s) : m_private(0)
@@ -146,8 +154,7 @@ public:
{
if (!m_private)
return NullableString16(string16(), true);
- size_t len = length();
- return NullableString16(len ? string16(data(), len) : string16(), false);
+ return NullableString16(operator string16(), false);
darin (slow to review) 2013/05/24 06:12:53 nit: You could reduce this code down to just: r
abarth-chromium 2013/05/24 06:17:44 Good idea.
}
template <class UTF8String>
@@ -158,6 +165,10 @@ public:
#endif
private:
+ WEBKIT_EXPORT bool is8Bit() const;
+ WEBKIT_EXPORT const WebLChar* data8() const;
+ WEBKIT_EXPORT const WebUChar* data16() const;
+
void assign(WebStringPrivate*);
WebStringPrivate* m_private;
};
« Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.cpp ('K') | « public/platform/WebCommon.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698