Mercurial > hg > truffle
comparison src/share/vm/graal/graalCompilerToVM.cpp @ 5395:fc1943f18fef
fixed bug in returning array values from CompilerToVMImpl.executeCompiledMethodVarargs
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 14 May 2012 21:51:32 +0200 |
parents | b5cd7bc05695 |
children | e1f45fcddb49 |
comparison
equal
deleted
inserted
replaced
5394:afb983c25aa0 | 5395:fc1943f18fef |
---|---|
1045 } | 1045 } |
1046 JavaCalls::call(&result, mh, nm, &jca, CHECK_NULL); | 1046 JavaCalls::call(&result, mh, nm, &jca, CHECK_NULL); |
1047 | 1047 |
1048 if (jap.get_ret_type() == T_VOID) { | 1048 if (jap.get_ret_type() == T_VOID) { |
1049 return NULL; | 1049 return NULL; |
1050 } else if (jap.get_ret_type() == T_OBJECT) { | 1050 } else if (jap.get_ret_type() == T_OBJECT || jap.get_ret_type() == T_ARRAY) { |
1051 return JNIHandles::make_local((oop) result.get_jobject()); | 1051 return JNIHandles::make_local((oop) result.get_jobject()); |
1052 } else { | 1052 } else { |
1053 oop o = java_lang_boxing_object::create(jap.get_ret_type(), (jvalue *) result.get_value_addr(), CHECK_NULL); | 1053 oop o = java_lang_boxing_object::create(jap.get_ret_type(), (jvalue *) result.get_value_addr(), CHECK_NULL); |
1054 return JNIHandles::make_local(o); | 1054 return JNIHandles::make_local(o); |
1055 } | 1055 } |