We cannot access ->class field for primitive and array classes (it is
NULL). These classes do not declare methods, fields nor constructors.

Signed-off-by: Tomek Grabiec <tgrab...@gmail.com>
---
 vm/reflection.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/vm/reflection.c b/vm/reflection.c
index 154e86e..093d5a7 100644
--- a/vm/reflection.c
+++ b/vm/reflection.c
@@ -91,6 +91,9 @@ native_vmclass_get_declared_fields(struct vm_object *clazz,
        if (!vmc)
                return NULL;
 
+       if (vm_class_is_primitive_class(vmc) || vm_class_is_array_class(vmc))
+               return 
vm_object_alloc_array(vm_array_of_java_lang_reflect_Field, 0);
+
        int count;
 
        if (public_only) {
@@ -160,6 +163,9 @@ native_vmclass_get_declared_methods(struct vm_object *clazz,
        if (!vmc)
                return NULL;
 
+       if (vm_class_is_primitive_class(vmc) || vm_class_is_array_class(vmc))
+               return 
vm_object_alloc_array(vm_array_of_java_lang_reflect_Field, 0);
+
        int count;
 
        if (public_only) {
@@ -229,6 +235,9 @@ native_vmclass_get_declared_constructors(struct vm_object 
*clazz,
        if (!vmc)
                return NULL;
 
+       if (vm_class_is_primitive_class(vmc) || vm_class_is_array_class(vmc))
+               return 
vm_object_alloc_array(vm_array_of_java_lang_reflect_Field, 0);
+
        int count = 0;
 
        for (int i = 0; i < vmc->class->methods_count; i++) {
-- 
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