From b7c54cf22605439c5fe9565abacd7e3d35ce6dc1 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 17 Sep 2012 10:30:39 +0200 Subject: [PATCH] android: Fix conversion of actual Unicode strings (i.e. bytes!=chars) --- .../android/jni/libandroidbridge/android_jni.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/frontends/android/jni/libandroidbridge/android_jni.h b/src/frontends/android/jni/libandroidbridge/android_jni.h index bafd6b72e..943774e82 100644 --- a/src/frontends/android/jni/libandroidbridge/android_jni.h +++ b/src/frontends/android/jni/libandroidbridge/android_jni.h @@ -91,14 +91,15 @@ static inline bool androidjni_exception_occurred(JNIEnv *env) static inline char *androidjni_convert_jstring(JNIEnv *env, jstring jstr) { char *str = NULL; - jsize len; + jsize bytes, chars; if (jstr) { - len = (*env)->GetStringUTFLength(env, jstr); - str = malloc(len + 1); - (*env)->GetStringUTFRegion(env, jstr, 0, len, str); - str[len] = '\0'; + chars = (*env)->GetStringLength(env, jstr); + bytes = (*env)->GetStringUTFLength(env, jstr); + str = malloc(bytes + 1); + (*env)->GetStringUTFRegion(env, jstr, 0, chars, str); + str[bytes] = '\0'; } return str; }