📄 jni-callmethod.c
字号:
{ jvalue retval; jobject obj_local; Hjava_lang_Object* o; Method* m = (Method*)meth; BEGIN_EXCEPTION_HANDLING(0); obj_local = unveil(obj); o = (Hjava_lang_Object*)obj_local; if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } KaffeVM_callMethodV(m, getMethodFunc (m, o), o, args, &retval); END_EXCEPTION_HANDLING(); return ((jbyte) retval.i);}jbyteKaffeJNI_CallByteMethod(JNIEnv* env, jobject obj, jmethodID meth, ...){ va_list args; jbyte r; BEGIN_EXCEPTION_HANDLING(0); va_start(args, meth); r = KaffeJNI_CallByteMethodV(env, obj, meth, args); va_end(args); END_EXCEPTION_HANDLING(); return (r);}jbyteKaffeJNI_CallByteMethodA(JNIEnv* env UNUSED, jobject obj, jmethodID meth, jvalue* args){ jvalue retval; jobject obj_local; Hjava_lang_Object* o; Method* m = (Method*)meth; BEGIN_EXCEPTION_HANDLING(0); obj_local = unveil(obj); o = (Hjava_lang_Object*)obj_local; if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } KaffeVM_callMethodA(m, getMethodFunc (m, o), obj, args, &retval, 0); END_EXCEPTION_HANDLING(); return ((jbyte) retval.i);}/* ------------------------------------------------------------------------------ * Virtual method calls returning char * ------------------------------------------------------------------------------ */jcharKaffeJNI_CallCharMethodV(JNIEnv* env UNUSED, jobject obj, jmethodID meth, va_list args){ jvalue retval; jobject obj_local; Hjava_lang_Object* o; Method* m = (Method*)meth; BEGIN_EXCEPTION_HANDLING(0); obj_local = unveil(obj); o = (Hjava_lang_Object*)obj_local; if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } KaffeVM_callMethodV(m, getMethodFunc (m, o), o, args, &retval); END_EXCEPTION_HANDLING(); return ((jchar) retval.i);}jcharKaffeJNI_CallCharMethod(JNIEnv* env, jobject obj, jmethodID meth, ...){ va_list args; jchar r; BEGIN_EXCEPTION_HANDLING(0); va_start(args, meth); r = KaffeJNI_CallCharMethodV(env, obj, meth, args); va_end(args); END_EXCEPTION_HANDLING(); return (r);}jcharKaffeJNI_CallCharMethodA(JNIEnv* env UNUSED, jobject obj, jmethodID meth, jvalue* args){ jvalue retval; jobject obj_local; Hjava_lang_Object* o; Method* m = (Method*)meth; BEGIN_EXCEPTION_HANDLING(0); obj_local = unveil(obj); o = (Hjava_lang_Object*)obj_local; if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } KaffeVM_callMethodA(m, getMethodFunc (m, o), o, args, &retval, 0); END_EXCEPTION_HANDLING(); return ((jchar) retval.i);}/* ------------------------------------------------------------------------------ * Non-virtual method calls returning short * ------------------------------------------------------------------------------ */jshortKaffeJNI_CallShortMethodV(JNIEnv* env UNUSED, jobject obj, jmethodID meth, va_list args){ jvalue retval; jobject obj_local; Hjava_lang_Object* o; Method* m = (Method*)meth; BEGIN_EXCEPTION_HANDLING(0); obj_local = unveil(obj); o = (Hjava_lang_Object*)obj_local; if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } KaffeVM_callMethodV(m, getMethodFunc (m, o), o, args, &retval); END_EXCEPTION_HANDLING(); return ((jshort) retval.i);}jshortKaffeJNI_CallShortMethod(JNIEnv* env, jobject obj, jmethodID meth, ...){ va_list args; jshort r; BEGIN_EXCEPTION_HANDLING(0); va_start(args, meth); r = KaffeJNI_CallShortMethodV(env, obj, meth, args); va_end(args); END_EXCEPTION_HANDLING(); return (r);}jshortKaffeJNI_CallShortMethodA(JNIEnv* env UNUSED, jobject obj, jmethodID meth, jvalue* args){ jvalue retval; jobject obj_local; Hjava_lang_Object* o; Method* m = (Method*)meth; BEGIN_EXCEPTION_HANDLING(0); obj_local = unveil(obj); o = (Hjava_lang_Object*)obj_local; if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } KaffeVM_callMethodA(m, getMethodFunc (m, o), o, args, &retval, 0); END_EXCEPTION_HANDLING(); return ((jshort) retval.i);}/* ------------------------------------------------------------------------------ * Non-virtual method calls returning int * ------------------------------------------------------------------------------ */jintKaffeJNI_CallIntMethodV(JNIEnv* env UNUSED, jobject obj, jmethodID meth, va_list args){ jvalue retval; jobject obj_local; Hjava_lang_Object* o; Method* m = (Method*)meth; BEGIN_EXCEPTION_HANDLING(0); obj_local = unveil(obj); o = (Hjava_lang_Object*)obj_local; if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } KaffeVM_callMethodV(m, getMethodFunc (m, o), o, args, &retval); END_EXCEPTION_HANDLING(); return (retval.i);}jintKaffeJNI_CallIntMethod(JNIEnv* env, jobject obj, jmethodID meth, ...){ va_list args; jint r; BEGIN_EXCEPTION_HANDLING(0); va_start(args, meth); r = KaffeJNI_CallIntMethodV(env, obj, meth, args); va_end(args); END_EXCEPTION_HANDLING(); return (r);}jintKaffeJNI_CallIntMethodA(JNIEnv* env UNUSED, jobject obj, jmethodID meth, jvalue* args){ jvalue retval; jobject obj_local; Hjava_lang_Object* o; Method* m = (Method*)meth; BEGIN_EXCEPTION_HANDLING(0); obj_local = unveil(obj); o = (Hjava_lang_Object*)obj_local; if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } KaffeVM_callMethodA(m, getMethodFunc (m, o), o, args, &retval, 0); END_EXCEPTION_HANDLING(); return (retval.i);}/* ------------------------------------------------------------------------------ * Non-virtual method calls returning long * ------------------------------------------------------------------------------ */jlongKaffeJNI_CallLongMethodV(JNIEnv* env UNUSED, jobject obj, jmethodID meth, va_list args){ jvalue retval; jobject obj_local; Hjava_lang_Object* o; Method* m = (Method*)meth; BEGIN_EXCEPTION_HANDLING(0); obj_local = unveil(obj); o = (Hjava_lang_Object*)obj_local; if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } KaffeVM_callMethodV(m, getMethodFunc (m, o), o, args, &retval); END_EXCEPTION_HANDLING(); return (retval.j);}jlongKaffeJNI_CallLongMethod(JNIEnv* env, jobject obj, jmethodID meth, ...){ va_list args; jlong r; BEGIN_EXCEPTION_HANDLING(0); va_start(args, meth); r = KaffeJNI_CallLongMethodV(env, obj, meth, args); va_end(args); END_EXCEPTION_HANDLING(); return (r);}jlongKaffeJNI_CallLongMethodA(JNIEnv* env UNUSED, jobject obj, jmethodID meth, jvalue* args){ jvalue retval; jobject obj_local; Hjava_lang_Object* o; Method* m = (Method*)meth; BEGIN_EXCEPTION_HANDLING(0); obj_local = unveil(obj); o = (Hjava_lang_Object*)obj_local; if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } KaffeVM_callMethodA(m, getMethodFunc (m, o), o, args, &retval, 0); END_EXCEPTION_HANDLING(); return (retval.j);}/* ------------------------------------------------------------------------------ * Non-virtual method calls returning float * ------------------------------------------------------------------------------ */jfloatKaffeJNI_CallFloatMethodV(JNIEnv* env UNUSED, jobject obj, jmethodID meth, va_list args){ jvalue retval; jobject obj_local; Hjava_lang_Object* o; Method* m = (Method*)meth; BEGIN_EXCEPTION_HANDLING(0); obj_local = unveil(obj); o = (Hjava_lang_Object*)obj_local; if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } KaffeVM_callMethodV(m, getMethodFunc (m, o), o, args, &retval); END_EXCEPTION_HANDLING(); return (retval.f);}jfloatKaffeJNI_CallFloatMethod(JNIEnv* env, jobject obj, jmethodID meth, ...){ va_list args; jfloat r; BEGIN_EXCEPTION_HANDLING(0); va_start(args, meth); r = KaffeJNI_CallFloatMethodV(env, obj, meth, args); va_end(args); END_EXCEPTION_HANDLING(); return (r);}jfloatKaffeJNI_CallFloatMethodA(JNIEnv* env UNUSED, jobject obj, jmethodID meth, jvalue* args){ jvalue retval; jobject obj_local; Hjava_lang_Object* o; Method* m = (Method*)meth; BEGIN_EXCEPTION_HANDLING(0); obj_local = unveil(obj); o = (Hjava_lang_Object*)obj_local; if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } KaffeVM_callMethodA(m, getMethodFunc (m, o), o, args, &retval, 0); END_EXCEPTION_HANDLING(); return (retval.f);}/* ------------------------------------------------------------------------------ * Non-virtual method calls returning double * ------------------------------------------------------------------------------ */jdoubleKaffeJNI_CallDoubleMethodV(JNIEnv* env UNUSED, jobject obj, jmethodID meth, va_list args){ jvalue retval; jobject obj_local; Hjava_lang_Object* o; Method* m = (Method*)meth; BEGIN_EXCEPTION_HANDLING(0); obj_local = unveil(obj); o = (Hjava_lang_Object*)obj_local; if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } KaffeVM_callMethodV(m, getMethodFunc (m, o), o, args, &retval); END_EXCEPTION_HANDLING(); return (retval.d);}jdoubleKaffeJNI_CallDoubleMethod(JNIEnv* env, jobject obj, jmethodID meth, ...){ va_list args; jdouble r; BEGIN_EXCEPTION_HANDLING(0); va_start(args, meth); r = KaffeJNI_CallDoubleMethodV(env, obj, meth, args); va_end(args); END_EXCEPTION_HANDLING(); return (r);}jdoubleKaffeJNI_CallDoubleMethodA(JNIEnv* env UNUSED, jobject obj, jmethodID meth, jvalue* args){ jvalue retval; jobject obj_local; Hjava_lang_Object* o; Method* m = (Method*)meth; BEGIN_EXCEPTION_HANDLING(0); obj_local = unveil(obj); o = (Hjava_lang_Object*)obj_local; if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } KaffeVM_callMethodA(m, getMethodFunc (m, o), o, args, &retval, 0); END_EXCEPTION_HANDLING(); return (retval.d);}/* ------------------------------------------------------------------------------ * Non-virtual method calls returning long * ------------------------------------------------------------------------------ */jlongKaffeJNI_CallNonvirtualLongMethodV(JNIEnv* env UNUSED, jobject obj, jclass cls UNUSED, jmethodID meth, va_list args){ jvalue retval; Method* m = (Method*)meth; jobject obj_local; BEGIN_EXCEPTION_HANDLING(0); if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } obj_local = unveil(obj); KaffeVM_callMethodV(m, METHOD_NATIVECODE(m), obj_local, args, &retval); END_EXCEPTION_HANDLING(); return (retval.j);}jlongKaffeJNI_CallNonvirtualLongMethod(JNIEnv* env, jobject obj, jclass cls, jmethodID meth, ...){ va_list args; jlong r; BEGIN_EXCEPTION_HANDLING(0); va_start(args, meth); r = KaffeJNI_CallNonvirtualLongMethodV(env, obj, cls, meth, args); va_end(args); END_EXCEPTION_HANDLING(); return (r);}jlongKaffeJNI_CallNonvirtualLongMethodA(JNIEnv* env UNUSED, jobject obj, jclass cls UNUSED, jmethodID meth, jvalue* args){ jvalue retval; Method* m = (Method*)meth; jobject obj_local; BEGIN_EXCEPTION_HANDLING(0); if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } obj_local = unveil(obj); KaffeVM_callMethodA(m, METHOD_NATIVECODE(m), obj_local, args, &retval, 0); END_EXCEPTION_HANDLING(); return (retval.j);}/* ------------------------------------------------------------------------------ * Non-virtual method calls returning float * ------------------------------------------------------------------------------ */jfloatKaffeJNI_CallNonvirtualFloatMethodV(JNIEnv* env UNUSED, jobject obj, jclass cls UNUSED, jmethodID meth, va_list args){ jvalue retval; Method* m = (Method*)meth; jobject obj_local; BEGIN_EXCEPTION_HANDLING(0); if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } obj_local = unveil(obj); KaffeVM_callMethodV(m, METHOD_NATIVECODE(m), obj_local, args, &retval); END_EXCEPTION_HANDLING(); return (retval.f);}jfloatKaffeJNI_CallNonvirtualFloatMethod(JNIEnv* env, jobject obj, jclass cls, jmethodID meth, ...){ va_list args; jfloat r; BEGIN_EXCEPTION_HANDLING(0); va_start(args, meth); r = KaffeJNI_CallNonvirtualFloatMethodV(env, obj, cls, meth, args); va_end(args); END_EXCEPTION_HANDLING(); return (r);}jfloatKaffeJNI_CallNonvirtualFloatMethodA(JNIEnv* env UNUSED, jobject obj, jclass cls UNUSED, jmethodID meth, jvalue* args){ jvalue retval; Method* m = (Method*)meth; jobject obj_local; BEGIN_EXCEPTION_HANDLING(0); if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } obj_local = unveil(obj); KaffeVM_callMethodA(m, METHOD_NATIVECODE(m), obj_local, args, &retval, 0); END_EXCEPTION_HANDLING(); return (retval.f);}/* ------------------------------------------------------------------------------ * Non-virtual method calls returning double * ------------------------------------------------------------------------------ */jdoubleKaffeJNI_CallNonvirtualDoubleMethodV(JNIEnv* env UNUSED, jobject obj, jclass cls UNUSED, jmethodID meth, va_list args){ jvalue retval; Method* m = (Method*)meth; jobject obj_local; BEGIN_EXCEPTION_HANDLING(0); if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } obj_local = unveil(obj); KaffeVM_callMethodV(m, METHOD_NATIVECODE(m), obj_local, args, &retval); END_EXCEPTION_HANDLING(); return (retval.d);}jdoubleKaffeJNI_CallNonvirtualDoubleMethod(JNIEnv* env, jobject obj, jclass cls, jmethodID meth, ...){ va_list args; jdouble r; BEGIN_EXCEPTION_HANDLING(0); va_start(args, meth); r = KaffeJNI_CallNonvirtualDoubleMethodV(env, obj, cls, meth, args); va_end(args); END_EXCEPTION_HANDLING(); return (r);}jdoubleKaffeJNI_CallNonvirtualDoubleMethodA(JNIEnv* env UNUSED, jobject obj, jclass cls UNUSED, jmethodID meth, jvalue* args){ jvalue retval; Method* m = (Method*)meth; jobject obj_local; BEGIN_EXCEPTION_HANDLING(0); if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } obj_local = unveil(obj); KaffeVM_callMethodA(m, METHOD_NATIVECODE(m), obj_local, args, &retval, 0); END_EXCEPTION_HANDLING();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -