diff options
Diffstat (limited to 'runtime/utf.cc')
| -rw-r--r-- | runtime/utf.cc | 36 |
1 files changed, 1 insertions, 35 deletions
diff --git a/runtime/utf.cc b/runtime/utf.cc index 1add7d9a68..5ec2ea1c36 100644 --- a/runtime/utf.cc +++ b/runtime/utf.cc @@ -19,6 +19,7 @@ #include "base/logging.h" #include "mirror/array.h" #include "mirror/object-inl.h" +#include "utf-inl.h" namespace art { @@ -84,41 +85,6 @@ int32_t ComputeUtf16Hash(const uint16_t* chars, size_t char_count) { return hash; } - -uint16_t GetUtf16FromUtf8(const char** utf8_data_in) { - uint8_t one = *(*utf8_data_in)++; - if ((one & 0x80) == 0) { - // one-byte encoding - return one; - } - // two- or three-byte encoding - uint8_t two = *(*utf8_data_in)++; - if ((one & 0x20) == 0) { - // two-byte encoding - return ((one & 0x1f) << 6) | (two & 0x3f); - } - // three-byte encoding - uint8_t three = *(*utf8_data_in)++; - return ((one & 0x0f) << 12) | ((two & 0x3f) << 6) | (three & 0x3f); -} - -int CompareModifiedUtf8ToModifiedUtf8AsUtf16CodePointValues(const char* utf8_1, const char* utf8_2) { - for (;;) { - if (*utf8_1 == '\0') { - return (*utf8_2 == '\0') ? 0 : -1; - } else if (*utf8_2 == '\0') { - return 1; - } - - int c1 = GetUtf16FromUtf8(&utf8_1); - int c2 = GetUtf16FromUtf8(&utf8_2); - - if (c1 != c2) { - return c1 > c2 ? 1 : -1; - } - } -} - int CompareModifiedUtf8ToUtf16AsCodePointValues(const char* utf8_1, const uint16_t* utf8_2) { for (;;) { if (*utf8_1 == '\0') { |