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

Unified Diff: runtime/vm/unicode.h

Issue 11411092: Revert "Add some support for the code-point code-unit distinction." (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 1 month 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
« no previous file with comments | « runtime/vm/symbols.cc ('k') | runtime/vm/unicode.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/unicode.h
diff --git a/runtime/vm/unicode.h b/runtime/vm/unicode.h
index 2475dc7eb715aef13c67778e11a13cedb131ccb5..a53f7afc75bdb6a716de7c37caae3054f0b9157c 100644
--- a/runtime/vm/unicode.h
+++ b/runtime/vm/unicode.h
@@ -12,7 +12,6 @@ namespace dart {
class String;
-
class Utf8 : AllStatic {
public:
enum Type {
@@ -26,11 +25,9 @@ class Utf8 : AllStatic {
static const intptr_t kMaxThreeByteChar = 0xFFFF;
static const intptr_t kMaxFourByteChar = 0x10FFFF;
- static const int32_t kInvalidCodePoint = -1;
-
- static intptr_t CodeUnitCount(const uint8_t* utf8_array,
- intptr_t array_len,
- Type* type);
+ static intptr_t CodePointCount(const uint8_t* utf8_array,
+ intptr_t array_len,
+ Type* type);
// Returns true if 'utf8_array' is a valid UTF-8 string.
static bool IsValid(const uint8_t* utf8_array, intptr_t array_len);
@@ -55,10 +52,10 @@ class Utf8 : AllStatic {
intptr_t len);
static bool DecodeToUTF32(const uint8_t* utf8_array,
intptr_t array_len,
- int32_t* dst,
+ uint32_t* dst,
intptr_t len);
static bool DecodeCStringToUTF32(const char* str,
- int32_t* dst,
+ uint32_t* dst,
intptr_t len) {
ASSERT(str != NULL);
intptr_t array_len = strlen(str);
@@ -71,10 +68,10 @@ class Utf8 : AllStatic {
class Utf16 : AllStatic {
public:
static const int32_t kMaxBmpCodepoint = 0xFFFF;
- static const int32_t kMaxCodeUnit = 0xFFFF;
- static const int32_t kMaxCodePoint = 0x10FFFF;
- static const int32_t kSurrogateEncodingBase = 0x10000;
+ static const int32_t kLeadSurrogateOffset = (0xD800 - (0x10000 >> 10));
+
+ static const int32_t kSurrogateOffset = (0x10000 - (0xD800 << 10) - 0xDC00);
// Returns the length of the code point in UTF-16 code units.
static intptr_t Length(int32_t ch) {
@@ -98,36 +95,11 @@ class Utf16 : AllStatic {
// Decodes a surrogate pair into a supplementary code point.
static int32_t Decode(int32_t lead, int32_t trail) {
- ASSERT(IsLeadSurrogate(lead));
- ASSERT(IsTrailSurrogate(trail));
- return kSurrogateEncodingBase +
- ((lead & kSurrogateMask) << 10) + (trail & kSurrogateMask);
- }
-
- static int32_t LeadFromCodePoint(int32_t code_point) {
- ASSERT(code_point >= kSurrogateEncodingBase);
- return kLeadBase +
- (((code_point - kSurrogateEncodingBase) >> 10) & kSurrogateMask);
- }
-
- static int32_t TrailFromCodePoint(int32_t code_point) {
- ASSERT(code_point >= kSurrogateEncodingBase);
- return kTrailBase + (code_point & kSurrogateMask);
+ return 0x10000 + ((lead & 0x3FF) << 10) + (trail & 0x3FF);
}
// Encodes a single code point.
static void Encode(int32_t codepoint, uint16_t* dst);
-
- // Gets the 21 bit Unicode code point at the given index in a string. If the
- // returned value is greater than kMaxCodePoint then the next position of the
- // string encodes a trail surrogate and should be skipped on iteration. May
- // return individual surrogate values if they are not part of a pair.
- static int32_t CodePointAt(const String& str, int index);
-
- private:
- static const int32_t kLeadBase = 0xD800;
- static const int32_t kTrailBase = 0xDC00;
- static const int32_t kSurrogateMask = 0x3FF;
};
« no previous file with comments | « runtime/vm/symbols.cc ('k') | runtime/vm/unicode.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698