| 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; | ||||
| } | } |