Loading core/jni/android_database_CursorWindow.cpp +2 −8 Original line number Diff line number Diff line Loading @@ -205,14 +205,8 @@ static jstring nativeGetString(JNIEnv* env, jclass clazz, jint windowPtr, if (type == FIELD_TYPE_STRING) { uint32_t size = fieldSlot->data.buffer.size; #if WINDOW_STORAGE_UTF8 if (size <= 1) { return gEmptyString; } // Convert to UTF-16 here instead of calling NewStringUTF. NewStringUTF // doesn't like UTF-8 strings with high codepoints. It actually expects // Modified UTF-8 with encoded surrogate pairs. String16 utf16(window->getFieldSlotValueString(fieldSlot), size - 1); return env->NewString(reinterpret_cast<const jchar*>(utf16.string()), utf16.size()); return size > 1 ? env->NewStringUTF(window->getFieldSlotValueString(fieldSlot)) : gEmptyString; #else size_t chars = size / sizeof(char16_t); return chars ? env->NewString(reinterpret_cast<jchar*>( Loading Loading
core/jni/android_database_CursorWindow.cpp +2 −8 Original line number Diff line number Diff line Loading @@ -205,14 +205,8 @@ static jstring nativeGetString(JNIEnv* env, jclass clazz, jint windowPtr, if (type == FIELD_TYPE_STRING) { uint32_t size = fieldSlot->data.buffer.size; #if WINDOW_STORAGE_UTF8 if (size <= 1) { return gEmptyString; } // Convert to UTF-16 here instead of calling NewStringUTF. NewStringUTF // doesn't like UTF-8 strings with high codepoints. It actually expects // Modified UTF-8 with encoded surrogate pairs. String16 utf16(window->getFieldSlotValueString(fieldSlot), size - 1); return env->NewString(reinterpret_cast<const jchar*>(utf16.string()), utf16.size()); return size > 1 ? env->NewStringUTF(window->getFieldSlotValueString(fieldSlot)) : gEmptyString; #else size_t chars = size / sizeof(char16_t); return chars ? env->NewString(reinterpret_cast<jchar*>( Loading