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

📄 jni-fields.c

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 C
字号:
/* * jni-fields.c * Java Native Interface - Get/SetXField JNI functions. * * Copyright (c) 1996, 1997 *	Transvirtual Technologies, Inc.  All rights reserved. * * Copyright (c) 2004 *      The Kaffe.org's developers. See ChangeLog for details. * * See the file "license.terms" for information on usage and redistribution  * of this file.  *//* * Get and set fields. */#include "config.h"#include "jni_i.h"#include "jni.h"#include "classMethod.h"#include "jni_funcs.h"/* ------------------------------------------------------------------------------ * GetField functions * ------------------------------------------------------------------------------ */jobjectKaffeJNI_GetObjectField(JNIEnv* env UNUSED, jobject obj, jfieldID fld){  jobject nobj;  jobject obj_local;  BEGIN_EXCEPTION_HANDLING(NULL);  obj_local = unveil(obj);  nobj = KNI_GET_FIELD(jobject, obj_local, fld);  ADD_REF(nobj);  END_EXCEPTION_HANDLING();  return (nobj);}jbooleanKaffeJNI_GetBooleanField(JNIEnv* env UNUSED, jobject obj, jfieldID fld){  jboolean r;  jobject obj_local;  BEGIN_EXCEPTION_HANDLING(0);  obj_local = unveil(obj);  r = KNI_GET_FIELD(jboolean, obj_local, fld);  END_EXCEPTION_HANDLING();  return (r);}jbyteKaffeJNI_GetByteField(JNIEnv* env UNUSED, jobject obj, jfieldID fld){  jbyte r;  jobject obj_local;  BEGIN_EXCEPTION_HANDLING(0);  obj_local = unveil(obj);  r = KNI_GET_FIELD(jbyte, obj_local, fld);  END_EXCEPTION_HANDLING();  return (r);}jcharKaffeJNI_GetCharField(JNIEnv* env UNUSED, jobject obj, jfieldID fld){  jchar r;  jobject obj_local;  BEGIN_EXCEPTION_HANDLING(0);  obj_local = unveil(obj);  r = KNI_GET_FIELD(jchar, obj_local, fld);  END_EXCEPTION_HANDLING();  return (r);}jshortKaffeJNI_GetShortField(JNIEnv* env UNUSED, jobject obj, jfieldID fld){  jshort r;  jobject obj_local;  BEGIN_EXCEPTION_HANDLING(0);  obj_local = unveil(obj);  r = KNI_GET_FIELD(jshort, obj_local, fld);  END_EXCEPTION_HANDLING();  return (r);}jintKaffeJNI_GetIntField(JNIEnv* env UNUSED, jobject obj, jfieldID fld){  jint r;  jobject obj_local;  BEGIN_EXCEPTION_HANDLING(0);  obj_local = unveil(obj);  r = KNI_GET_FIELD(jint, obj_local, fld);  END_EXCEPTION_HANDLING();  return (r);}jlongKaffeJNI_GetLongField(JNIEnv* env UNUSED, jobject obj, jfieldID fld){  jlong r;  jobject obj_local;  BEGIN_EXCEPTION_HANDLING(0);  obj_local = unveil(obj);  r = KNI_GET_FIELD(jlong, obj_local, fld);  END_EXCEPTION_HANDLING();  return (r);}jfloatKaffeJNI_GetFloatField(JNIEnv* env UNUSED, jobject obj, jfieldID fld){  jfloat r;  jobject obj_local;  BEGIN_EXCEPTION_HANDLING(0);  obj_local = unveil(obj);  r = KNI_GET_FIELD(jfloat, obj_local, fld);  END_EXCEPTION_HANDLING();  return (r);}jdoubleKaffeJNI_GetDoubleField(JNIEnv* env UNUSED, jobject obj, jfieldID fld){  jdouble r;  jobject obj_local;  BEGIN_EXCEPTION_HANDLING(0);  obj_local = unveil(obj);  r = KNI_GET_FIELD(jdouble, obj_local, fld);  END_EXCEPTION_HANDLING();  return (r);}/* ------------------------------------------------------------------------------ * SetField functions * ------------------------------------------------------------------------------ */voidKaffeJNI_SetObjectField(JNIEnv* env UNUSED, jobject obj, jfieldID fld, jobject val){  jobject obj_local, val_local;  BEGIN_EXCEPTION_HANDLING_VOID();  obj_local = unveil(obj);  val_local = unveil(val);  KNI_SET_FIELD(jobject, obj_local, fld, val_local);  END_EXCEPTION_HANDLING();}voidKaffeJNI_SetBooleanField(JNIEnv* env UNUSED, jobject obj, jfieldID fld, jboolean val){  jobject obj_local;  BEGIN_EXCEPTION_HANDLING_VOID();  obj_local = unveil(obj);  KNI_SET_FIELD(jboolean, obj_local, fld, val);  END_EXCEPTION_HANDLING();}voidKaffeJNI_SetByteField(JNIEnv* env UNUSED, jobject obj, jfieldID fld, jbyte val){  jobject obj_local;  BEGIN_EXCEPTION_HANDLING_VOID();  obj_local = unveil(obj);  KNI_SET_FIELD(jbyte, obj_local, fld, val);  END_EXCEPTION_HANDLING();}voidKaffeJNI_SetCharField(JNIEnv* env UNUSED, jobject obj, jfieldID fld, jchar val){  jobject obj_local;  BEGIN_EXCEPTION_HANDLING_VOID();  obj_local = unveil(obj);  KNI_SET_FIELD(jchar, obj_local, fld, val);  END_EXCEPTION_HANDLING();}voidKaffeJNI_SetShortField(JNIEnv* env UNUSED, jobject obj, jfieldID fld, jshort val){  jobject obj_local;  BEGIN_EXCEPTION_HANDLING_VOID();  obj_local = unveil(obj);  KNI_SET_FIELD(jshort, obj_local, fld, val);  END_EXCEPTION_HANDLING();}voidKaffeJNI_SetIntField(JNIEnv* env UNUSED, jobject obj, jfieldID fld, jint val){  jobject obj_local;  BEGIN_EXCEPTION_HANDLING_VOID();  obj_local = unveil(obj);  KNI_SET_FIELD(jint, obj_local, fld, val);  END_EXCEPTION_HANDLING();}voidKaffeJNI_SetLongField(JNIEnv* env UNUSED, jobject obj, jfieldID fld, jlong val){  jobject obj_local;  BEGIN_EXCEPTION_HANDLING_VOID();  obj_local = unveil(obj);  KNI_SET_FIELD(jlong, obj_local, fld, val);  END_EXCEPTION_HANDLING();}voidKaffeJNI_SetFloatField(JNIEnv* env UNUSED, jobject obj, jfieldID fld, jfloat val){  jobject obj_local;  BEGIN_EXCEPTION_HANDLING_VOID();  obj_local = unveil(obj);  KNI_SET_FIELD(jfloat, obj_local, fld, val);  END_EXCEPTION_HANDLING();}voidKaffeJNI_SetDoubleField(JNIEnv* env UNUSED, jobject obj, jfieldID fld, jdouble val){  jobject obj_local;  BEGIN_EXCEPTION_HANDLING_VOID();  obj_local = unveil(obj);  KNI_SET_FIELD(jdouble, obj_local, fld, val);  END_EXCEPTION_HANDLING();}/* ------------------------------------------------------------------------------ * GetStaticField functions * ------------------------------------------------------------------------------ */jobjectKaffeJNI_GetStaticObjectField(JNIEnv* env UNUSED, jclass cls UNUSED, jfieldID fld){  jobject obj;  BEGIN_EXCEPTION_HANDLING(NULL);  obj = KNI_GET_STATIC_FIELD(jobject, fld);  ADD_REF(obj);  END_EXCEPTION_HANDLING();  return (obj);}jbooleanKaffeJNI_GetStaticBooleanField(JNIEnv* env UNUSED, jclass cls UNUSED, jfieldID fld){  jboolean r;  BEGIN_EXCEPTION_HANDLING(0);  r = KNI_GET_STATIC_FIELD(jboolean, fld);  END_EXCEPTION_HANDLING();  return (r);}jbyteKaffeJNI_GetStaticByteField(JNIEnv* env UNUSED, jclass cls UNUSED, jfieldID fld){  jbyte r;  BEGIN_EXCEPTION_HANDLING(0);  r = KNI_GET_STATIC_FIELD(jbyte, fld);  END_EXCEPTION_HANDLING();  return (r);}jcharKaffeJNI_GetStaticCharField(JNIEnv* env UNUSED, jclass cls UNUSED, jfieldID fld){  jchar r;  BEGIN_EXCEPTION_HANDLING(0);  r = KNI_GET_STATIC_FIELD(jchar, fld);  END_EXCEPTION_HANDLING();  return (r);}jshortKaffeJNI_GetStaticShortField(JNIEnv* env UNUSED, jclass cls UNUSED, jfieldID fld){  jint r;  BEGIN_EXCEPTION_HANDLING(0);  r = KNI_GET_STATIC_FIELD(jshort, fld);  END_EXCEPTION_HANDLING();  return (r);}jintKaffeJNI_GetStaticIntField(JNIEnv* env UNUSED, jclass cls UNUSED, jfieldID fld){  jint r;  BEGIN_EXCEPTION_HANDLING(0);  r = KNI_GET_STATIC_FIELD(jint, fld);  END_EXCEPTION_HANDLING();  return (r);}jlongKaffeJNI_GetStaticLongField(JNIEnv* env UNUSED, jclass cls UNUSED, jfieldID fld){  jlong r;  BEGIN_EXCEPTION_HANDLING(0);  r = KNI_GET_STATIC_FIELD(jlong, fld);  END_EXCEPTION_HANDLING();  return (r);}jfloatKaffeJNI_GetStaticFloatField(JNIEnv* env UNUSED, jclass cls UNUSED, jfieldID fld){  jfloat r;  BEGIN_EXCEPTION_HANDLING(0);  r = KNI_GET_STATIC_FIELD(jfloat, fld);  END_EXCEPTION_HANDLING();  return (r);}jdoubleKaffeJNI_GetStaticDoubleField(JNIEnv* env UNUSED, jclass cls UNUSED, jfieldID fld){  jdouble r;  BEGIN_EXCEPTION_HANDLING(0);  r = KNI_GET_STATIC_FIELD(jdouble, fld);  END_EXCEPTION_HANDLING();  return (r);}/* ------------------------------------------------------------------------------ * SetStaticField functions * ------------------------------------------------------------------------------ */voidKaffeJNI_SetStaticObjectField(JNIEnv* env UNUSED, jclass cls UNUSED, jfieldID fld, jobject val){  jobject val_local;  BEGIN_EXCEPTION_HANDLING_VOID();  val_local = unveil(val);  KNI_SET_STATIC_FIELD(jobject, fld, val_local);  END_EXCEPTION_HANDLING();}voidKaffeJNI_SetStaticBooleanField(JNIEnv* env UNUSED, jclass cls UNUSED, jfieldID fld, jboolean val){  BEGIN_EXCEPTION_HANDLING_VOID();  KNI_SET_STATIC_FIELD(jboolean, fld, val);  END_EXCEPTION_HANDLING();}voidKaffeJNI_SetStaticByteField(JNIEnv* env UNUSED, jclass cls UNUSED, jfieldID fld, jbyte val){  BEGIN_EXCEPTION_HANDLING_VOID();  KNI_SET_STATIC_FIELD(jbyte, fld, val);  END_EXCEPTION_HANDLING();}voidKaffeJNI_SetStaticCharField(JNIEnv* env UNUSED, jclass cls UNUSED, jfieldID fld, jchar val){  BEGIN_EXCEPTION_HANDLING_VOID();  KNI_SET_STATIC_FIELD(jchar, fld, val);  END_EXCEPTION_HANDLING();}voidKaffeJNI_SetStaticShortField(JNIEnv* env UNUSED, jclass cls UNUSED, jfieldID fld, jshort val){  BEGIN_EXCEPTION_HANDLING_VOID();  KNI_SET_STATIC_FIELD(jshort, fld, val);  END_EXCEPTION_HANDLING();}voidKaffeJNI_SetStaticIntField(JNIEnv* env UNUSED, jclass cls UNUSED, jfieldID fld, jint val){  BEGIN_EXCEPTION_HANDLING_VOID();  KNI_SET_STATIC_FIELD(jint, fld, val);  END_EXCEPTION_HANDLING();}voidKaffeJNI_SetStaticLongField(JNIEnv* env UNUSED, jclass cls UNUSED, jfieldID fld, jlong val){  BEGIN_EXCEPTION_HANDLING_VOID();  KNI_SET_STATIC_FIELD(jlong, fld, val);  END_EXCEPTION_HANDLING();}voidKaffeJNI_SetStaticFloatField(JNIEnv* env UNUSED, jclass cls UNUSED, jfieldID fld, jfloat val){  BEGIN_EXCEPTION_HANDLING_VOID();  KNI_SET_STATIC_FIELD(jfloat, fld, val);  END_EXCEPTION_HANDLING();}voidKaffeJNI_SetStaticDoubleField(JNIEnv* env UNUSED, jclass cls UNUSED, jfieldID fld, jdouble val){  BEGIN_EXCEPTION_HANDLING_VOID();  KNI_SET_STATIC_FIELD(jdouble, fld, val);  END_EXCEPTION_HANDLING();}

⌨️ 快捷键说明

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