Those functions should return values wrapped in approptiate objects,
not the value itself. This caused a SIGSEGV when running clojure
because an integer value was accessed like an object reference.

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

diff --git a/vm/reflection.c b/vm/reflection.c
index 027bfb4..6d03a57 100644
--- a/vm/reflection.c
+++ b/vm/reflection.c
@@ -721,7 +721,7 @@ call_virtual_method(struct vm_method *vmm, struct vm_object 
*o,
                return NULL;
 
        vm_call_method_this_a(vmm, o, args, &result);
-       return result.l;
+       return wrap(&result, vmm->return_type.vm_type);
 }
 
 static struct vm_object *
@@ -734,7 +734,7 @@ call_static_method(struct vm_method *vmm, struct vm_object 
*args_array)
                return NULL;
 
        vm_call_method_a(vmm, args, &result);
-       return result.l;
+       return wrap(&result, vmm->return_type.vm_type);
 }
 
 jint native_method_get_modifiers_internal(struct vm_object *this)
-- 
1.6.0.4


------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Jatovm-devel mailing list
Jatovm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jatovm-devel

Reply via email to