android: Fix conversion of actual Unicode strings (i.e. bytes!=chars)
This commit is contained in:
@@ -91,14 +91,15 @@ static inline bool androidjni_exception_occurred(JNIEnv *env)
|
|||||||
static inline char *androidjni_convert_jstring(JNIEnv *env, jstring jstr)
|
static inline char *androidjni_convert_jstring(JNIEnv *env, jstring jstr)
|
||||||
{
|
{
|
||||||
char *str = NULL;
|
char *str = NULL;
|
||||||
jsize len;
|
jsize bytes, chars;
|
||||||
|
|
||||||
if (jstr)
|
if (jstr)
|
||||||
{
|
{
|
||||||
len = (*env)->GetStringUTFLength(env, jstr);
|
chars = (*env)->GetStringLength(env, jstr);
|
||||||
str = malloc(len + 1);
|
bytes = (*env)->GetStringUTFLength(env, jstr);
|
||||||
(*env)->GetStringUTFRegion(env, jstr, 0, len, str);
|
str = malloc(bytes + 1);
|
||||||
str[len] = '\0';
|
(*env)->GetStringUTFRegion(env, jstr, 0, chars, str);
|
||||||
|
str[bytes] = '\0';
|
||||||
}
|
}
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user