We can simply return ->access_flags because java.lang.reflect.Modifier uses constants from JVM spec.
Signed-off-by: Tomek Grabiec <tgrab...@gmail.com> --- include/vm/preload.h | 8 -------- vm/jato.c | 27 +++------------------------ vm/preload.c | 15 --------------- 3 files changed, 3 insertions(+), 47 deletions(-) diff --git a/include/vm/preload.h b/include/vm/preload.h index 2ed913f..0617ba6 100644 --- a/include/vm/preload.h +++ b/include/vm/preload.h @@ -48,7 +48,6 @@ extern struct vm_class *vm_java_lang_Long; extern struct vm_class *vm_java_lang_Short; extern struct vm_class *vm_java_lang_IllegalArgumentException; extern struct vm_class *vm_java_lang_ClassLoader; -extern struct vm_class *vm_java_lang_reflect_Modifier; extern struct vm_class *vm_boolean_class; extern struct vm_class *vm_char_class; extern struct vm_class *vm_float_class; @@ -81,13 +80,6 @@ extern struct vm_field *vm_java_lang_reflect_Field_slot; extern struct vm_field *vm_java_lang_reflect_Method_declaringClass; extern struct vm_field *vm_java_lang_reflect_Method_name; extern struct vm_field *vm_java_lang_reflect_Method_slot; -extern struct vm_field *vm_java_lang_reflect_Modifier_PUBLIC; -extern struct vm_field *vm_java_lang_reflect_Modifier_PRIVATE; -extern struct vm_field *vm_java_lang_reflect_Modifier_PROTECTED; -extern struct vm_field *vm_java_lang_reflect_Modifier_STATIC; -extern struct vm_field *vm_java_lang_reflect_Modifier_FINAL; -extern struct vm_field *vm_java_lang_reflect_Modifier_ABSTRACT; -extern struct vm_field *vm_java_lang_reflect_Modifier_INTERFACE; extern struct vm_method *vm_java_util_Properties_setProperty; extern struct vm_method *vm_java_lang_Throwable_initCause; diff --git a/vm/jato.c b/vm/jato.c index 146bb09..aa5b2c0 100644 --- a/vm/jato.c +++ b/vm/jato.c @@ -630,32 +630,11 @@ native_vmclass_isprimitive(struct vm_object *object) static jint native_vmclass_getmodifiers(struct vm_object *clazz) { - struct vm_class *vmc = to_vmclass(clazz); - if (!vmc) - return 0; - - jint flags = 0; - - if (vm_class_ensure_init(vm_java_lang_reflect_Modifier)) + struct vm_class *class = to_vmclass(clazz); + if (!class) return 0; - if (vm_class_is_public(vmc)) - flags |= static_field_get_int(vm_java_lang_reflect_Modifier_PUBLIC); - else if (vm_class_is_private(vmc)) - flags |= static_field_get_int(vm_java_lang_reflect_Modifier_PRIVATE); - else if (vm_class_is_protected(vmc)) - flags |= static_field_get_int(vm_java_lang_reflect_Modifier_PROTECTED); - - if (vm_class_is_interface(vmc)) - flags |= static_field_get_int(vm_java_lang_reflect_Modifier_INTERFACE); - - if (vm_class_is_abstract(vmc)) - flags |= static_field_get_int(vm_java_lang_reflect_Modifier_ABSTRACT); - - if (vm_class_is_static(vmc)) - flags |= static_field_get_int(vm_java_lang_reflect_Modifier_STATIC); - - return flags; + return class->class->access_flags; } static struct vm_object * diff --git a/vm/preload.c b/vm/preload.c index eb69b0d..4d477db 100644 --- a/vm/preload.c +++ b/vm/preload.c @@ -89,7 +89,6 @@ struct vm_class *vm_java_lang_Integer; struct vm_class *vm_java_lang_Long; struct vm_class *vm_java_lang_Short; struct vm_class *vm_java_lang_VMString; -struct vm_class *vm_java_lang_reflect_Modifier; struct vm_class *vm_boolean_class; struct vm_class *vm_char_class; struct vm_class *vm_float_class; @@ -149,7 +148,6 @@ static const struct preload_entry preload_entries[] = { { "java/lang/Long", &vm_java_lang_Long }, { "java/lang/ClassLoader", &vm_java_lang_ClassLoader}, { "java/lang/VMString", &vm_java_lang_VMString}, - { "java/lang/reflect/Modifier", &vm_java_lang_reflect_Modifier}, }; static const struct preload_entry primitive_preload_entries[] = { @@ -193,13 +191,6 @@ struct vm_field *vm_java_lang_reflect_Field_slot; struct vm_field *vm_java_lang_reflect_Method_declaringClass; struct vm_field *vm_java_lang_reflect_Method_name; struct vm_field *vm_java_lang_reflect_Method_slot; -struct vm_field *vm_java_lang_reflect_Modifier_PUBLIC; -struct vm_field *vm_java_lang_reflect_Modifier_PRIVATE; -struct vm_field *vm_java_lang_reflect_Modifier_PROTECTED; -struct vm_field *vm_java_lang_reflect_Modifier_STATIC; -struct vm_field *vm_java_lang_reflect_Modifier_FINAL; -struct vm_field *vm_java_lang_reflect_Modifier_ABSTRACT; -struct vm_field *vm_java_lang_reflect_Modifier_INTERFACE; static const struct field_preload_entry field_preload_entries[] = { { &vm_java_lang_Class, "vmdata", "Ljava/lang/Object;", &vm_java_lang_Class_vmdata }, @@ -225,12 +216,6 @@ static const struct field_preload_entry field_preload_entries[] = { { &vm_java_lang_reflect_Method, "declaringClass", "Ljava/lang/Class;", &vm_java_lang_reflect_Method_declaringClass }, { &vm_java_lang_reflect_Method, "slot", "I", &vm_java_lang_reflect_Method_slot }, { &vm_java_lang_reflect_Method, "name", "Ljava/lang/String;", &vm_java_lang_reflect_Method_name }, - { &vm_java_lang_reflect_Modifier, "PUBLIC", "I", &vm_java_lang_reflect_Modifier_PUBLIC }, - { &vm_java_lang_reflect_Modifier, "PROTECTED", "I", &vm_java_lang_reflect_Modifier_PROTECTED }, - { &vm_java_lang_reflect_Modifier, "PRIVATE", "I", &vm_java_lang_reflect_Modifier_PRIVATE }, - { &vm_java_lang_reflect_Modifier, "ABSTRACT", "I", &vm_java_lang_reflect_Modifier_ABSTRACT }, - { &vm_java_lang_reflect_Modifier, "INTERFACE", "I", &vm_java_lang_reflect_Modifier_INTERFACE }, - { &vm_java_lang_reflect_Modifier, "STATIC", "I", &vm_java_lang_reflect_Modifier_STATIC }, }; struct method_preload_entry { -- 1.6.0.6 ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel