Signed-off-by: Tomek Grabiec <tgrab...@gmail.com> --- include/vm/preload.h | 2 ++ vm/preload.c | 14 ++++++++++++++ vm/reflection.c | 7 ++++++- 3 files changed, 22 insertions(+), 1 deletions(-)
diff --git a/include/vm/preload.h b/include/vm/preload.h index c71d8f9..a99fa89 100644 --- a/include/vm/preload.h +++ b/include/vm/preload.h @@ -112,6 +112,8 @@ extern struct vm_method *vm_java_lang_ClassLoader_loadClass; extern struct vm_method *vm_java_lang_ClassLoader_getSystemClassLoader; extern struct vm_method *vm_java_lang_Number_intValue; extern struct vm_method *vm_java_lang_Number_floatValue; +extern struct vm_method *vm_java_lang_Number_longValue; +extern struct vm_method *vm_java_lang_Number_doubleValue; int preload_vm_classes(void); diff --git a/vm/preload.c b/vm/preload.c index b2804da..23516af 100644 --- a/vm/preload.c +++ b/vm/preload.c @@ -259,6 +259,8 @@ struct vm_method *vm_java_lang_ClassLoader_getSystemClassLoader; struct vm_method *vm_java_lang_VMString_intern; struct vm_method *vm_java_lang_Number_intValue; struct vm_method *vm_java_lang_Number_floatValue; +struct vm_method *vm_java_lang_Number_longValue; +struct vm_method *vm_java_lang_Number_doubleValue; static const struct method_preload_entry method_preload_entries[] = { { @@ -429,6 +431,18 @@ static const struct method_preload_entry method_preload_entries[] = { "()F", &vm_java_lang_Number_floatValue, }, + { + &vm_java_lang_Number, + "longValue", + "()J", + &vm_java_lang_Number_longValue, + }, + { + &vm_java_lang_Number, + "doubleValue", + "()D", + &vm_java_lang_Number_doubleValue, + }, }; /* diff --git a/vm/reflection.c b/vm/reflection.c index 790dce8..e5dea46 100644 --- a/vm/reflection.c +++ b/vm/reflection.c @@ -655,8 +655,13 @@ static int unwrap(void *field_ptr, enum vm_type type, *(jfloat *) field_ptr = result.f; return 0; case J_LONG: + vm_call_method_this_a(vm_java_lang_Number_longValue, value, args, &result); + *(jlong *) field_ptr = result.j; + return 0; case J_DOUBLE: - error("not implemented"); + vm_call_method_this_a(vm_java_lang_Number_doubleValue, value, args, &result); + *(jdouble *) field_ptr = result.d; + return 0; case J_VOID: case J_RETURN_ADDRESS: case VM_TYPE_MAX: -- 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