Fix crash when receiving some UTF-8 chars

This commit is contained in:
Sylvain Berfini 2014-11-27 10:29:39 +01:00
parent 13bacf87c9
commit 110ed1c9d9
2 changed files with 16 additions and 5 deletions

View file

@ -2726,11 +2726,15 @@ extern "C" void Java_org_linphone_core_LinphoneChatMessageImpl_store(JNIEnv* en
linphone_chat_message_store((LinphoneChatMessage*)ptr);
}
extern "C" jstring Java_org_linphone_core_LinphoneChatMessageImpl_getText(JNIEnv* env
extern "C" jbyteArray Java_org_linphone_core_LinphoneChatMessageImpl_getText(JNIEnv* env
,jobject thiz
,jlong ptr) {
jstring jvalue =env->NewStringUTF(linphone_chat_message_get_text((LinphoneChatMessage*)ptr));
return jvalue;
const char *message = linphone_chat_message_get_text((LinphoneChatMessage*)ptr);
size_t length = strlen(message);
jbyteArray array = env->NewByteArray(length);
env->SetByteArrayRegion(array, 0, length, (const jbyte*)message);
return array;
}
extern "C" jint Java_org_linphone_core_LinphoneChatMessageImpl_getReason(JNIEnv* env

View file

@ -1,8 +1,10 @@
package org.linphone.core;
import java.io.UnsupportedEncodingException;
public class LinphoneChatMessageImpl implements LinphoneChatMessage {
protected final long nativePtr;
private native String getText(long ptr);
private native byte[] getText(long ptr);
private native long getPeerAddress(long ptr);
private native String getExternalBodyUrl(long ptr);
private native void setExternalBodyUrl(long ptr, String url);
@ -25,7 +27,12 @@ public class LinphoneChatMessageImpl implements LinphoneChatMessage {
@Override
public String getText() {
return getText(nativePtr);
try {
return new String(getText(nativePtr), "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
@Override