< prev index next >

src/cpu/x86/vm/sharedRuntime_x86_64.cpp

Print this page

        

*** 2497,2514 **** restore_native_result(masm, ret_type, stack_slots); } __ reset_last_Java_frame(false); ! // Unpack oop result if (ret_type == T_OBJECT || ret_type == T_ARRAY) { ! Label L; ! __ testptr(rax, rax); ! __ jcc(Assembler::zero, L); ! __ movptr(rax, Address(rax, 0)); ! __ bind(L); ! __ verify_oop(rax); } if (!is_critical_native) { // reset handle block __ movptr(rcx, Address(r15_thread, JavaThread::active_handles_offset())); --- 2497,2511 ---- restore_native_result(masm, ret_type, stack_slots); } __ reset_last_Java_frame(false); ! // Unbox oop result, e.g. JNIHandles::resolve value. if (ret_type == T_OBJECT || ret_type == T_ARRAY) { ! __ resolve_jobject(rax /* value */, ! r15_thread /* thread */, ! rcx /* tmp */); } if (!is_critical_native) { // reset handle block __ movptr(rcx, Address(r15_thread, JavaThread::active_handles_offset()));
< prev index next >