jobject CreateJavaHaxeObjectRef (JNIEnv *env, value inValue) { JNIInit (env); if (!gJavaObjectsMutexInit) { gJavaObjectsMutexInit = false; pthread_mutex_init (&gJavaObjectsMutex, 0); } pthread_mutex_lock (&gJavaObjectsMutex); JavaHaxeReferenceMap::iterator it = gJavaObjects.find (inValue); if (it != gJavaObjects.end ()) { it->second->refCount++; } else { gJavaObjects[inValue] = new JavaHaxeReference (inValue); } pthread_mutex_unlock (&gJavaObjectsMutex); jobject result = env->CallStaticObjectMethod (HaxeObject, HaxeObject_create, (jlong)inValue); jthrowable exc = env->ExceptionOccurred (); CheckException (env); return result; }
/* * Class: com_example_jnitest2_app_erdplayer_audioplayer_AudioPlayer * Method: JNIInit * Signature: ()V */ JNIEXPORT void JNICALL Java_com_example_jnitest2_app_erdplayer_audioplayer_AudioPlayer_JNIInit (JNIEnv *env, jobject obj) { JNIInit(); }