示例#1
0
文件: JNI.cpp 项目: restorer/lime
	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();
}