📄 jni.c
字号:
END_EXCEPTION_HANDLING(); return ((jbyte) retval.i);}static jbyteKaffe_CallNonvirtualByteMethod(JNIEnv* env, jobject obj, jclass cls, jmethodID meth, ...){ va_list args; jbyte ret; BEGIN_EXCEPTION_HANDLING(0); va_start(args, meth); ret = Kaffe_CallNonvirtualByteMethodV(env, obj, cls, meth, args); va_end(args); END_EXCEPTION_HANDLING(); return (ret);}static jbyteKaffe_CallNonvirtualByteMethodA(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 ((jbyte) retval.i);}static jcharKaffe_CallNonvirtualCharMethodV(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 ((jchar) retval.i);}static jcharKaffe_CallNonvirtualCharMethod(JNIEnv* env, jobject obj, jclass cls, jmethodID meth, ...){ va_list args; jchar ret; BEGIN_EXCEPTION_HANDLING(0); va_start(args, meth); ret = Kaffe_CallNonvirtualCharMethodV(env, obj, cls, meth, args); va_end(args); END_EXCEPTION_HANDLING(); return (ret);}static jcharKaffe_CallNonvirtualCharMethodA(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 ((jchar) retval.i);}static jshortKaffe_CallNonvirtualShortMethodV(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 ((jshort) retval.i);}static jshortKaffe_CallNonvirtualShortMethod(JNIEnv* env, jobject obj, jclass cls, jmethodID meth, ...){ va_list args; jshort ret; BEGIN_EXCEPTION_HANDLING(0); va_start(args, meth); ret = Kaffe_CallNonvirtualShortMethodV(env, obj, cls, meth, args); va_end(args); END_EXCEPTION_HANDLING(); return (ret);}static jshortKaffe_CallNonvirtualShortMethodA(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 ((jshort) retval.i);}static jintKaffe_CallNonvirtualIntMethodV(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 (retval.i);}static jintKaffe_CallNonvirtualIntMethod(JNIEnv* env, jobject obj, jclass cls, jmethodID meth, ...){ va_list args; jint ret; BEGIN_EXCEPTION_HANDLING(0); va_start(args, meth); ret = Kaffe_CallNonvirtualIntMethodV(env, obj, cls, meth, args); va_end(args); END_EXCEPTION_HANDLING(); return (ret);}static jintKaffe_CallNonvirtualIntMethodA(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 (retval.i);}static jlongKaffe_CallNonvirtualLongMethodV(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 (retval.j);}static jlongKaffe_CallNonvirtualLongMethod(JNIEnv* env, jobject obj, jclass cls, jmethodID meth, ...){ va_list args; jlong ret; BEGIN_EXCEPTION_HANDLING(0); va_start(args, meth); ret = Kaffe_CallNonvirtualLongMethodV(env, obj, cls, meth, args); va_end(args); END_EXCEPTION_HANDLING(); return (ret);}static jlongKaffe_CallNonvirtualLongMethodA(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 (retval.j);}static jfloatKaffe_CallNonvirtualFloatMethodV(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 (retval.f);}static jfloatKaffe_CallNonvirtualFloatMethod(JNIEnv* env, jobject obj, jclass cls, jmethodID meth, ...){ va_list args; jfloat ret; BEGIN_EXCEPTION_HANDLING(0); va_start(args, meth); ret = Kaffe_CallNonvirtualFloatMethodV(env, obj, cls, meth, args); va_end(args); END_EXCEPTION_HANDLING(); return (ret);}static jfloatKaffe_CallNonvirtualFloatMethodA(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 (retval.f);}static jdoubleKaffe_CallNonvirtualDoubleMethodV(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 (retval.d);}static jdoubleKaffe_CallNonvirtualDoubleMethod(JNIEnv* env, jobject obj, jclass cls, jmethodID meth, ...){ va_list args; jdouble ret; BEGIN_EXCEPTION_HANDLING(0); va_start(args, meth); ret = Kaffe_CallNonvirtualDoubleMethodV(env, obj, cls, meth, args); va_end(args); END_EXCEPTION_HANDLING(); return (ret);}static jdoubleKaffe_CallNonvirtualDoubleMethodA(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 (retval.d);}static voidKaffe_CallNonvirtualVoidMethodV(JNIEnv* env, jobject obj, jclass cls, jmethodID meth, va_list args){ Method* m = (Method*)meth; BEGIN_EXCEPTION_HANDLING_VOID(); if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } callMethodV(m, METHOD_INDIRECTMETHOD(m), obj, args, 0); END_EXCEPTION_HANDLING();}static voidKaffe_CallNonvirtualVoidMethod(JNIEnv* env, jobject obj, jclass cls, jmethodID meth, ...){ va_list args; BEGIN_EXCEPTION_HANDLING_VOID(); va_start(args, meth); Kaffe_CallNonvirtualVoidMethodV(env, obj, cls, meth, args); va_end(args); END_EXCEPTION_HANDLING();}static voidKaffe_CallNonvirtualVoidMethodA(JNIEnv* env, jobject obj, jclass cls, jmethodID meth, jvalue* args){ Method* m = (Method*)meth; BEGIN_EXCEPTION_HANDLING_VOID(); if (METHOD_IS_STATIC(m)) { throwException(NoSuchMethodError(m->name->data)); } callMethodA(m, METHOD_INDIRECTMETHOD(m), obj, args, 0, 0); END_EXCEPTION_HANDLING();}static jfieldIDKaffe_GetFieldID(JNIEnv* env, jclass cls, const char* name, const char* sig){ Field* fld; errorInfo info; Utf8Const* utf8; BEGIN_EXCEPTION_HANDLING(0); utf8 = checkPtr(utf8ConstNew(name, -1)); fld = lookupClassField((Hjava_lang_Class*)cls, utf8, false, &info); utf8ConstRelease(utf8); if (fld == NULL) { postError(env, &info); } END_EXCEPTION_HANDLING(); return (fld);}static jobjectKaffe_GetObjectField(JNIEnv* env, jobject obj, jfieldID fld){ jobject nobj; BEGIN_EXCEPTION_HANDLING(0); nobj = GET_FIELD(jobject, obj, fld); ADD_REF(nobj); END_EXCEPTION_HANDLING(); return (nobj);}static jbooleanKaffe_GetBooleanField(JNIEnv* env, jobject obj, jfieldID fld){ jboolean ret; BEGIN_EXCEPTION_HANDLING(0); ret = GET_FIELD(jboolean, obj, fld); END_EXCEPTION_HANDLING(); return (ret);}static jbyteKaffe_GetByteField(JNIEnv* env, jobject obj, jfieldID fld){ jbyte ret; BEGIN_EXCEPTION_HANDLING(0); ret = GET_FIELD(jbyte, obj, fld); END_EXCEPTION_HANDLING(); return (ret);}static jcharKaffe_GetCharField(JNIEnv* env, jobject obj, jfieldID fld){ jchar ret; BEGIN_EXCEPTION_HANDLING(0); ret = GET_FIELD(jchar, obj, fld); END_EXCEPTION_HANDLING(); return (ret);}static jshortKaffe_GetShortField(JNIEnv* env, jobject obj, jfieldID fld){ jshort ret; BEGIN_EXCEPTION_HANDLING(0); ret = GET_FIELD(jshort, obj, fld); END_EXCEPTION_HANDLING(); return (ret);}static jintKaffe_GetIntField(JNIEnv* env, jobject obj, jfieldID fld){ jint ret; BEGIN_EXCEPTION_HANDLING(0); ret = GET_FIELD(jint, obj, fld); END_EXCEPTION_HANDLING(); return (ret);}static jlongKaffe_GetLongField(JNIEnv* env, jobject obj, jfieldID fld){ jlong ret; BEGIN_EXCEPTION_HANDLING(0); ret = GET_FIELD(jlong, obj, fld); END_EXCEPTION_HANDLING(); return (ret);}static jfloatKaffe_GetFloatField(JNIEnv* env, jobject obj, jfieldID fld){ jfloat ret; BEGIN_EXCEPTION_HANDLING(0); ret = GET_FIELD(jfloat, obj, fld); END_EXCEPTION_HANDLING(); return (ret);}static jdoubleKaffe_GetDoubleField(JNIEnv* env, jobject obj, jfieldID fld){ jdouble ret; BEGIN_EXCEPTION_HANDLING(0); ret = GET_FIELD(jdouble, obj, fld); END_EXCEPTION_HANDLING(); return (ret);}static voidKaffe_SetObjectField(JNIEnv* env, jobject obj, jfieldID fld, jobject val){ BEGIN_EXCEPTION_HANDLING_VOID(); SET_FIELD(jobject, obj, fld, val); END_EXCEPTION_HANDLING();}static voidKaffe_SetBooleanField(JNIEnv* env, jobject obj, jfieldID fld, jbool val){ BEGIN_EXCEPTION_HANDLING_VOID(); SET_FIELD(jboolean, obj, fld, val); END_EXCEPTION_HANDLING();}static voidKaffe_SetByteField(JNIEnv* env, jobject obj, jfieldID fld, jbyte val){ BEGIN_EXCEPTION_HANDLING_VOID(); SET_FIELD(jbyte, obj, fld, val); END_EXCEPTION_HANDLING();}static voidKaffe_SetCharField(JNIEnv* env, jobject obj, jfieldID fld, jchar val){ BEGIN_EXCEPTION_HANDLING_VOID(); SET_FIELD(jchar, obj, fld, val); END_EXCEPTION_HANDLING();}static voidKaffe_SetShortField(JNIEnv* env, jobject obj, jfieldID fld, jshort val){ BEGIN_EXCEPTION_HANDLING_VOID(); SET_FIELD(jshort, obj, fld, val); END_EXCEPTION_HANDLING();}static voidKaffe_SetIntField(JNIEnv* env, jobject obj, jfieldID fld, jint val){ BEGIN_EXCEPTION_HANDLING_VOID(); SET_FIELD(jint, obj, fld, val); END_EXCEPTION_HANDLING();}static voidKaffe_SetLongField(JNIEnv* env, jobject obj, jfieldID fld, jlong val){ BEGIN_EXCEPTION_HANDLING_VOID(); SET_FIELD(jlong, obj, fld, val); END_EXCEPTION_HANDLING();}static voidKaffe_SetFloatField(JNIEnv* env, jobject obj, jfieldID fld, jfloat val){ BEGIN_EXCEPTION_HANDLING_VOID(); SET_FIELD(jfloat, obj, fld, val); END_EXCEPTION_HANDLING();}static voidKaffe_SetDoubleField(JNIEnv* env, jobject obj, jfieldID fld, jdouble val){ BEGIN_EXCEPTION_HANDLING_VOID(); SET_FIELD(jdouble, obj, fld, val); END_EXCEPTION_HANDLING();}static jmethodIDKaffe_GetStaticMethodID(JNIEnv* env, jclass cls, const char* name, const char* sig){ Method* meth; errorInfo info; BEGIN_EXCEPTION_HANDLING(0); meth = lookupClassMethod((Hjava_lang_Class*)cls, (char*)name, (char*)sig, &info); if (meth == 0) { postError(env, &info); } else if (!METHOD_IS_STATIC(meth)) { postExceptionMessage(&info, JAVA_LANG(NoSuchMethodError), "%s", name); postError(env, &info); meth = 0; } END_EXCEPTION_HANDLING(); return (meth);}static jobjectKaffe_CallStaticObjectMethodV(JNIEnv* env, jclass cls, jmethodID meth, va_list args){ jvalue retval; Method* m = (Method*)meth; BEGIN_EXCEPTION_HANDLING(0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -