Don't use UTF16 length as length for MUTF8.
Bug 11367555.
Change-Id: Ia0b07072a1a49d435c3b71ed9a668b316b7ff5d8
diff --git a/runtime/dex_file.cc b/runtime/dex_file.cc
index a0f5601..d3bb483 100644
--- a/runtime/dex_file.cc
+++ b/runtime/dex_file.cc
@@ -459,7 +459,7 @@
int32_t mid = (hi + lo) / 2;
uint32_t length;
const DexFile::StringId& str_id = GetStringId(mid);
- const char* str = GetStringDataAndLength(str_id, &length);
+ const char* str = GetStringDataAndUtf16Length(str_id, &length);
int compare = CompareModifiedUtf8ToModifiedUtf8AsUtf16CodePointValues(string, str);
if (compare > 0) {
lo = mid + 1;
@@ -479,7 +479,7 @@
int32_t mid = (hi + lo) / 2;
uint32_t length;
const DexFile::StringId& str_id = GetStringId(mid);
- const char* str = GetStringDataAndLength(str_id, &length);
+ const char* str = GetStringDataAndUtf16Length(str_id, &length);
int compare = CompareModifiedUtf8ToUtf16AsCodePointValues(str, string);
if (compare > 0) {
lo = mid + 1;