Browse Source

The nat object may be null in nativeDestroy.

master
Reece H. Dunn 12 years ago
parent
commit
7ec13c5558
1 changed files with 9 additions and 6 deletions
  1. 9
    6
      android/jni/jni/eSpeakService.cpp

+ 9
- 6
android/jni/jni/eSpeakService.cpp View File

JNIEXPORT jboolean JNIEXPORT jboolean
JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeCreate( JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeCreate(
JNIEnv *env, jobject object, jstring path) { JNIEnv *env, jobject object, jstring path) {
if (DEBUG) LOGV("%s", __FUNCTION__);
if (DEBUG) LOGV("%s [env=%p, object=%p]", __FUNCTION__, env, object);
native_data_t *nat = new native_data_t; native_data_t *nat = new native_data_t;


if (nat == NULL) { if (nat == NULL) {
JNIEXPORT jboolean JNIEXPORT jboolean
JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeDestroy( JNICALL Java_com_reecedunn_espeak_SpeechSynthesis_nativeDestroy(
JNIEnv *env, jobject object) { JNIEnv *env, jobject object) {
if (DEBUG) LOGV("%s", __FUNCTION__);
native_data_t *nat = getNativeData(env, object);

env->DeleteWeakGlobalRef(nat->object);
if (DEBUG) LOGV("%s [env=%p, object=%p]", __FUNCTION__, env, object);


delete nat;
native_data_t *nat = getNativeData(env, object);
if (nat) {
env->DeleteWeakGlobalRef(nat->object);
delete nat;
} else {
env->DeleteWeakGlobalRef(object);
}


return JNI_TRUE; return JNI_TRUE;
} }

Loading…
Cancel
Save