equal
deleted
inserted
replaced
1032 jca.set_alternative_target(nm); |
1032 jca.set_alternative_target(nm); |
1033 JavaCalls::call(&result, mh, &jca, CHECK_NULL); |
1033 JavaCalls::call(&result, mh, &jca, CHECK_NULL); |
1034 |
1034 |
1035 if (jap.get_ret_type() == T_VOID) { |
1035 if (jap.get_ret_type() == T_VOID) { |
1036 return NULL; |
1036 return NULL; |
1037 } else if (jap.get_ret_type() == T_OBJECT || jap.get_ret_type() == T_ARRAY) { |
1037 } else if (is_reference_type(jap.get_ret_type())) { |
1038 return JNIHandles::make_local((oop) result.get_jobject()); |
1038 return JNIHandles::make_local((oop) result.get_jobject()); |
1039 } else { |
1039 } else { |
1040 jvalue *value = (jvalue *) result.get_value_addr(); |
1040 jvalue *value = (jvalue *) result.get_value_addr(); |
1041 // Narrow the value down if required (Important on big endian machines) |
1041 // Narrow the value down if required (Important on big endian machines) |
1042 switch (jap.get_ret_type()) { |
1042 switch (jap.get_ret_type()) { |