jni.c

来自「kaffe Java 解释器语言,源码,Java的子集系统,开放源代码」· C语言 代码 · 共 3,212 行 · 第 1/5 页

C
3,212
字号
	}	callMethodV(m, getMethodFunc (m, o), obj, args, &retval);	ADD_REF(retval.l);	END_EXCEPTION_HANDLING();	return (retval.l);}static jobjectKaffe_CallObjectMethod(JNIEnv* env, jobject obj, jmethodID meth, ...){	va_list args;	jobject ret;	BEGIN_EXCEPTION_HANDLING(0);	va_start(args, meth);	ret = Kaffe_CallObjectMethodV(env, obj, meth, args);	va_end(args);	END_EXCEPTION_HANDLING();	return (ret);}static jobjectKaffe_CallObjectMethodA(JNIEnv* env, jobject obj, jmethodID meth, jvalue* args){	jvalue retval;	Hjava_lang_Object* o = (Hjava_lang_Object*)obj;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodA(m, getMethodFunc (m, o), obj, args, &retval, 0);	END_EXCEPTION_HANDLING();	return (retval.l);}static jbooleanKaffe_CallBooleanMethodV(JNIEnv* env, jobject obj, jmethodID meth, va_list args){	jvalue retval;	Hjava_lang_Object* o = (Hjava_lang_Object*)obj;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodV(m, getMethodFunc (m, o), obj, args, &retval);	END_EXCEPTION_HANDLING();	return ((jboolean) retval.i);}static jbooleanKaffe_CallBooleanMethod(JNIEnv* env, jobject obj, jmethodID meth, ...){	va_list args;	jboolean ret;	BEGIN_EXCEPTION_HANDLING(0);	va_start(args, meth);	ret = Kaffe_CallBooleanMethodV(env, obj, meth, args);	va_end(args);	END_EXCEPTION_HANDLING();	return (ret);}static jbooleanKaffe_CallBooleanMethodA(JNIEnv* env, jobject obj, jmethodID meth, jvalue* args){	jvalue retval;	Hjava_lang_Object* o = (Hjava_lang_Object*)obj;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodA(m, getMethodFunc (m, o), obj, args, &retval, 0);	END_EXCEPTION_HANDLING();	return ((jboolean) retval.i);}static jbyteKaffe_CallByteMethodV(JNIEnv* env, jobject obj, jmethodID meth, va_list args){	jvalue retval;	Hjava_lang_Object* o = (Hjava_lang_Object*)obj;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodV(m, getMethodFunc (m, o), obj, args, &retval);	END_EXCEPTION_HANDLING();	return ((jbyte) retval.i);}static jbyteKaffe_CallByteMethod(JNIEnv* env, jobject obj, jmethodID meth, ...){	va_list args;	jbyte ret;	BEGIN_EXCEPTION_HANDLING(0);	va_start(args, meth);	ret = Kaffe_CallByteMethodV(env, obj, meth, args);	va_end(args);	END_EXCEPTION_HANDLING();	return (ret);}static jbyteKaffe_CallByteMethodA(JNIEnv* env, jobject obj, jmethodID meth, jvalue* args){	jvalue retval;	Hjava_lang_Object* o = (Hjava_lang_Object*)obj;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodA(m, getMethodFunc (m, o), obj, args, &retval, 0);	END_EXCEPTION_HANDLING();	return ((jbyte) retval.i);}static jcharKaffe_CallCharMethodV(JNIEnv* env, jobject obj, jmethodID meth, va_list args){	jvalue retval;	Hjava_lang_Object* o = (Hjava_lang_Object*)obj;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodV(m, getMethodFunc (m, o), obj, args, &retval);	END_EXCEPTION_HANDLING();	return ((jchar) retval.i);}static jcharKaffe_CallCharMethod(JNIEnv* env, jobject obj, jmethodID meth, ...){	va_list args;	jchar ret;	BEGIN_EXCEPTION_HANDLING(0);	va_start(args, meth);	ret = Kaffe_CallCharMethodV(env, obj, meth, args);	va_end(args);	END_EXCEPTION_HANDLING();	return (ret);}static jcharKaffe_CallCharMethodA(JNIEnv* env, jobject obj, jmethodID meth, jvalue* args){	jvalue retval;	Hjava_lang_Object* o = (Hjava_lang_Object*)obj;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodA(m, getMethodFunc (m, o), obj, args, &retval, 0);	END_EXCEPTION_HANDLING();	return ((jchar) retval.i);}static jshortKaffe_CallShortMethodV(JNIEnv* env, jobject obj, jmethodID meth, va_list args){	jvalue retval;	Hjava_lang_Object* o = (Hjava_lang_Object*)obj;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodV(m, getMethodFunc (m, o), obj, args, &retval);	END_EXCEPTION_HANDLING();	return ((jshort) retval.i);}static jshortKaffe_CallShortMethod(JNIEnv* env, jobject obj, jmethodID meth, ...){	va_list args;	jshort ret;	BEGIN_EXCEPTION_HANDLING(0);	va_start(args, meth);	ret = Kaffe_CallShortMethodV(env, obj, meth, args);	va_end(args);	END_EXCEPTION_HANDLING();	return (ret);}static jshortKaffe_CallShortMethodA(JNIEnv* env, jobject obj, jmethodID meth, jvalue* args){	jvalue retval;	Hjava_lang_Object* o = (Hjava_lang_Object*)obj;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodA(m, getMethodFunc (m, o), obj, args, &retval, 0);	END_EXCEPTION_HANDLING();	return ((jshort) retval.i);}static jintKaffe_CallIntMethodV(JNIEnv* env, jobject obj, jmethodID meth, va_list args){	jvalue retval;	Hjava_lang_Object* o = (Hjava_lang_Object*)obj;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodV(m, getMethodFunc (m, o), obj, args, &retval);	END_EXCEPTION_HANDLING();	return (retval.i);}static jintKaffe_CallIntMethod(JNIEnv* env, jobject obj, jmethodID meth, ...){	va_list args;	jint ret;	BEGIN_EXCEPTION_HANDLING(0);	va_start(args, meth);	ret = Kaffe_CallIntMethodV(env, obj, meth, args);	va_end(args);	END_EXCEPTION_HANDLING();	return (ret);}static jintKaffe_CallIntMethodA(JNIEnv* env, jobject obj, jmethodID meth, jvalue* args){	jvalue retval;	Hjava_lang_Object* o = (Hjava_lang_Object*)obj;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodA(m, getMethodFunc (m, o), obj, args, &retval, 0);	END_EXCEPTION_HANDLING();	return (retval.i);}static jlongKaffe_CallLongMethodV(JNIEnv* env, jobject obj, jmethodID meth, va_list args){	jvalue retval;	Hjava_lang_Object* o = (Hjava_lang_Object*)obj;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodV(m, getMethodFunc (m, o), obj, args, &retval);	END_EXCEPTION_HANDLING();	return (retval.j);}static jlongKaffe_CallLongMethod(JNIEnv* env, jobject obj, jmethodID meth, ...){	va_list args;	jlong ret;	BEGIN_EXCEPTION_HANDLING(0);	va_start(args, meth);	ret = Kaffe_CallLongMethodV(env, obj, meth, args);	va_end(args);	END_EXCEPTION_HANDLING();	return (ret);}static jlongKaffe_CallLongMethodA(JNIEnv* env, jobject obj, jmethodID meth, jvalue* args){	jvalue retval;	Hjava_lang_Object* o = (Hjava_lang_Object*)obj;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodA(m, getMethodFunc (m, o), obj, args, &retval, 0);	END_EXCEPTION_HANDLING();	return (retval.j);}static jfloatKaffe_CallFloatMethodV(JNIEnv* env, jobject obj, jmethodID meth, va_list args){	jvalue retval;	Hjava_lang_Object* o = (Hjava_lang_Object*)obj;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodV(m, getMethodFunc (m, o), obj, args, &retval);	END_EXCEPTION_HANDLING();	return (retval.f);}static jfloatKaffe_CallFloatMethod(JNIEnv* env, jobject obj, jmethodID meth, ...){	va_list args;	jfloat ret;	BEGIN_EXCEPTION_HANDLING(0);	va_start(args, meth);	ret = Kaffe_CallFloatMethodV(env, obj, meth, args);	va_end(args);	END_EXCEPTION_HANDLING();	return (ret);}static jfloatKaffe_CallFloatMethodA(JNIEnv* env, jobject obj, jmethodID meth, jvalue* args){	jvalue retval;	Hjava_lang_Object* o = (Hjava_lang_Object*)obj;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodA(m, getMethodFunc (m, o), obj, args, &retval, 0);	END_EXCEPTION_HANDLING();	return (retval.f);}static jdoubleKaffe_CallDoubleMethodV(JNIEnv* env, jobject obj, jmethodID meth, va_list args){	jvalue retval;	Hjava_lang_Object* o = (Hjava_lang_Object*)obj;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodV(m, getMethodFunc (m, o), obj, args, &retval);	END_EXCEPTION_HANDLING();	return (retval.d);}static jdoubleKaffe_CallDoubleMethod(JNIEnv* env, jobject obj, jmethodID meth, ...){	va_list args;	jdouble ret;	BEGIN_EXCEPTION_HANDLING(0);	va_start(args, meth);	ret = Kaffe_CallDoubleMethodV(env, obj, meth, args);	va_end(args);	END_EXCEPTION_HANDLING();	return (ret);}static jdoubleKaffe_CallDoubleMethodA(JNIEnv* env, jobject obj, jmethodID meth, jvalue* args){	jvalue retval;	Hjava_lang_Object* o = (Hjava_lang_Object*)obj;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodA(m, getMethodFunc (m, o), obj, args, &retval, 0);	END_EXCEPTION_HANDLING();	return (retval.d);}static voidKaffe_CallVoidMethodV(JNIEnv* env, jobject obj, jmethodID meth, va_list args){	Hjava_lang_Object* o = (Hjava_lang_Object*)obj;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING_VOID();	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodV(m, getMethodFunc (m, o), obj, args, 0);	END_EXCEPTION_HANDLING();}static voidKaffe_CallVoidMethod(JNIEnv* env, jobject obj, jmethodID meth, ...){	va_list args;	BEGIN_EXCEPTION_HANDLING_VOID();	va_start(args, meth);	Kaffe_CallVoidMethodV(env, obj, meth, args);	va_end(args);	END_EXCEPTION_HANDLING();}static voidKaffe_CallVoidMethodA(JNIEnv* env, jobject obj, jmethodID meth, jvalue* args){	Hjava_lang_Object* o = (Hjava_lang_Object*)obj;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING_VOID();	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodA(m, getMethodFunc (m, o), obj, args, 0, 0);	END_EXCEPTION_HANDLING();}static jobjectKaffe_CallNonvirtualObjectMethodV(JNIEnv* env, jobject obj, jclass cls, jmethodID meth, va_list args){	jvalue retval;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodV(m, METHOD_INDIRECTMETHOD(m), obj, args, &retval);	ADD_REF(retval.l);	END_EXCEPTION_HANDLING();	return (retval.l);}static jobjectKaffe_CallNonvirtualObjectMethod(JNIEnv* env, jobject obj, jclass cls, jmethodID meth, ...){	va_list args;	jobject ret;	BEGIN_EXCEPTION_HANDLING(0);	va_start(args, meth);	ret = Kaffe_CallNonvirtualObjectMethodV(env, obj, cls, meth, args);	va_end(args);	END_EXCEPTION_HANDLING();	return (ret);}static jobjectKaffe_CallNonvirtualObjectMethodA(JNIEnv* env, jobject obj, jclass cls, jmethodID meth, jvalue* args){	jvalue retval;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodA(m, METHOD_INDIRECTMETHOD(m), obj, args, &retval, 0);	ADD_REF(retval.l);	END_EXCEPTION_HANDLING();	return (retval.l);}static jbooleanKaffe_CallNonvirtualBooleanMethodV(JNIEnv* env, jobject obj, jclass cls, jmethodID meth, va_list args){	jvalue retval;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodV(m, METHOD_INDIRECTMETHOD(m), obj, args, &retval);	END_EXCEPTION_HANDLING();	return ((jboolean) retval.i);}static jbooleanKaffe_CallNonvirtualBooleanMethod(JNIEnv* env, jobject obj, jclass cls, jmethodID meth, ...){	va_list args;	jboolean ret;	BEGIN_EXCEPTION_HANDLING(0);	va_start(args, meth);	ret = Kaffe_CallNonvirtualBooleanMethodV(env, obj, cls, meth, args);	va_end(args);	END_EXCEPTION_HANDLING();	return (ret);}static jbooleanKaffe_CallNonvirtualBooleanMethodA(JNIEnv* env, jobject obj, jclass cls, jmethodID meth, jvalue* args){	jvalue retval;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodA(m, METHOD_INDIRECTMETHOD(m), obj, args, &retval, 0);	END_EXCEPTION_HANDLING();	return ((jboolean) retval.i);}static jbyteKaffe_CallNonvirtualByteMethodV(JNIEnv* env, jobject obj, jclass cls, jmethodID meth, va_list args){	jvalue retval;	Method* m = (Method*)meth;	BEGIN_EXCEPTION_HANDLING(0);	if (METHOD_IS_STATIC(m)) {		throwException(NoSuchMethodError(m->name->data));	}	callMethodV(m, METHOD_INDIRECTMETHOD(m), obj, args, &retval);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?