📄 field.c
字号:
/* * java.lang.reflect.Field.c * * Copyright (c) 1996,97 T. J. Wilkinson & Associates, London, UK. * * Copyright (c) 2006 * Kaffe.org contributors. See ChangeLog for details. * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * Written by Tim Wilkinson <tim@tjwassoc.co.uk> */#include "config.h"#include "config-std.h"#include "config-mem.h"#include "gtypes.h"#include "access.h"#include "constants.h"#include "object.h"#include "classMethod.h"#include "itypes.h"#include "support.h"#include "soft.h"#include "baseClasses.h"#include "exception.h"#include "java_lang_reflect_Field.h"#include "native.h"#include "defs.h"#include "stringSupport.h"staticvolatile void*getFieldAddress(Hjava_lang_reflect_Field* this, struct Hjava_lang_Object* obj){ return KaffeVM_GetFieldAddress(unhand(this)->declaringClass, obj, unhand(this)->slot);}/* WHAT WITH SECURITY RESTRICTIONS !!!??? */jint java_lang_reflect_Field_getModifiersInternal(struct Hjava_lang_reflect_Field * this){ Hjava_lang_Class* clas; Field* fld; clas = (Hjava_lang_Class*) unhand(this)->declaringClass; fld = CLASS_FIELDS(clas) + unhand(this)->slot; return ((jint)(fld->accflags & ACC_MASK));}struct Hjava_lang_Object*java_lang_reflect_Field_getObject0(struct Hjava_lang_reflect_Field * this, struct Hjava_lang_Object* obj){ return (*(struct Hjava_lang_Object**)getFieldAddress(this, obj));}jbooleanjava_lang_reflect_Field_getBoolean0(struct Hjava_lang_reflect_Field * this, struct Hjava_lang_Object* obj){ return (*(jboolean*)getFieldAddress(this, obj));}jbytejava_lang_reflect_Field_getByte0(struct Hjava_lang_reflect_Field * this, struct Hjava_lang_Object* obj){ return (*(jbyte*)getFieldAddress(this, obj));}jcharjava_lang_reflect_Field_getChar0(struct Hjava_lang_reflect_Field * this, struct Hjava_lang_Object* obj){ return (*(jchar*)getFieldAddress(this, obj));}jshortjava_lang_reflect_Field_getShort0(struct Hjava_lang_reflect_Field * this, struct Hjava_lang_Object* obj){ return (*(jshort*)getFieldAddress(this, obj));}jintjava_lang_reflect_Field_getInt0(struct Hjava_lang_reflect_Field * this, struct Hjava_lang_Object* obj){ return (*(jint*)getFieldAddress(this, obj));}jlongjava_lang_reflect_Field_getLong0(struct Hjava_lang_reflect_Field * this, struct Hjava_lang_Object* obj){ return (*(jlong*)getFieldAddress(this, obj));}jfloatjava_lang_reflect_Field_getFloat0(struct Hjava_lang_reflect_Field * this, struct Hjava_lang_Object* obj){ return (*(jfloat*)getFieldAddress(this, obj));}jdoublejava_lang_reflect_Field_getDouble0(struct Hjava_lang_reflect_Field * this, struct Hjava_lang_Object* obj){ return (*(jdouble*)getFieldAddress(this, obj));}voidjava_lang_reflect_Field_setBoolean0(struct Hjava_lang_reflect_Field * this, struct Hjava_lang_Object* obj, jboolean val){ *(jboolean*)getFieldAddress(this, obj) = val;}voidjava_lang_reflect_Field_setByte0(struct Hjava_lang_reflect_Field * this, struct Hjava_lang_Object* obj, jbyte val){ *(jbyte*)getFieldAddress(this, obj) = val;}voidjava_lang_reflect_Field_setChar0(struct Hjava_lang_reflect_Field * this, struct Hjava_lang_Object* obj, jchar val){ *(jchar*)getFieldAddress(this, obj) = val;}voidjava_lang_reflect_Field_setShort0(struct Hjava_lang_reflect_Field * this, struct Hjava_lang_Object* obj, jshort val){ *(jshort*)getFieldAddress(this, obj) = val;}voidjava_lang_reflect_Field_setInt0(struct Hjava_lang_reflect_Field * this, struct Hjava_lang_Object* obj, jint val){ *(jint*)getFieldAddress(this, obj) = val;}voidjava_lang_reflect_Field_setLong0(struct Hjava_lang_reflect_Field * this, struct Hjava_lang_Object* obj, jlong val){ *(jlong*)getFieldAddress(this, obj) = val;}voidjava_lang_reflect_Field_setFloat0(struct Hjava_lang_reflect_Field * this, struct Hjava_lang_Object* obj, jfloat val){ *(jfloat*)getFieldAddress(this, obj) = val;}voidjava_lang_reflect_Field_setDouble0(struct Hjava_lang_reflect_Field * this, struct Hjava_lang_Object* obj, jdouble val){ *(jdouble*)getFieldAddress(this, obj) = val;}voidjava_lang_reflect_Field_setObject0(struct Hjava_lang_reflect_Field * this, struct Hjava_lang_Object* obj, struct Hjava_lang_Object* val){ *(jobject*)getFieldAddress(this, obj) = val;}Hjava_lang_String *java_lang_reflect_Field_getSignature(struct Hjava_lang_reflect_Field* this){ Hjava_lang_Class* clazz; jint slot; clazz = unhand(this)->declaringClass; slot = unhand(this)->slot; assert(slot < CLASS_NFIELDS(clazz)); return utf8Const2Java(CLASS_FIELDS(clazz)[slot].extSignature);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -