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

Reply via email to