⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jni.c

📁 kaffe Java 解释器语言,源码,Java的子集系统,开放源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
	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 + -