We will have to return this class as void method's result type class.

Signed-off-by: Tomek Grabiec <tgrab...@gmail.com>
---
 include/vm/preload.h |    1 +
 vm/classloader.c     |    2 +-
 vm/preload.c         |    2 ++
 vm/reflection.c      |    7 +++++--
 4 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/include/vm/preload.h b/include/vm/preload.h
index 0617ba6..4976468 100644
--- a/include/vm/preload.h
+++ b/include/vm/preload.h
@@ -56,6 +56,7 @@ extern struct vm_class *vm_byte_class;
 extern struct vm_class *vm_short_class;
 extern struct vm_class *vm_int_class;
 extern struct vm_class *vm_long_class;
+extern struct vm_class *vm_void_class;
 
 extern struct vm_field *vm_java_lang_Class_vmdata;
 extern struct vm_field *vm_java_lang_String_offset;
diff --git a/vm/classloader.c b/vm/classloader.c
index 5011b3e..73bfcd7 100644
--- a/vm/classloader.c
+++ b/vm/classloader.c
@@ -382,7 +382,7 @@ struct vm_class *classloader_load_primitive(const char 
*class_name)
 
        cache_index = str_to_type(class_name);
 
-       if (cache_index == J_VOID || cache_index == J_REFERENCE)
+       if (cache_index == J_REFERENCE)
                return NULL;
 
        if (primitive_class_cache[cache_index])
diff --git a/vm/preload.c b/vm/preload.c
index 4d477db..f75304b 100644
--- a/vm/preload.c
+++ b/vm/preload.c
@@ -97,6 +97,7 @@ struct vm_class *vm_byte_class;
 struct vm_class *vm_short_class;
 struct vm_class *vm_int_class;
 struct vm_class *vm_long_class;
+struct vm_class *vm_void_class;
 
 static const struct preload_entry preload_entries[] = {
        { "java/lang/Object",           &vm_java_lang_Object },
@@ -159,6 +160,7 @@ static const struct preload_entry 
primitive_preload_entries[] = {
        {"S", &vm_short_class},
        {"I", &vm_int_class},
        {"J", &vm_long_class},
+       {"V", &vm_void_class},
 };
 
 struct field_preload_entry {
diff --git a/vm/reflection.c b/vm/reflection.c
index 8270f1a..14fdb12 100644
--- a/vm/reflection.c
+++ b/vm/reflection.c
@@ -294,10 +294,13 @@ static struct vm_class *vm_type_to_class(char *type_name, 
enum vm_type type)
                return vm_int_class;
        case J_LONG:
                return vm_long_class;
+       case J_VOID:
+               return vm_void_class;
        case J_REFERENCE:
                return classloader_load(type_name);
-       default:
-               NOT_IMPLEMENTED;
+       case J_RETURN_ADDRESS:
+       case VM_TYPE_MAX:
+               error("invalid type");
        }
 
        return NULL;
-- 
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