< prev index next >
src/cpu/x86/vm/sharedRuntime_x86_32.cpp
Print this page
*** 2251,2268 ****
// We can finally stop using that last_Java_frame we setup ages ago
__ reset_last_Java_frame(thread, false);
! // Unpack oop result
if (ret_type == T_OBJECT || ret_type == T_ARRAY) {
! Label L;
! __ cmpptr(rax, (int32_t)NULL_WORD);
! __ jcc(Assembler::equal, L);
! __ movptr(rax, Address(rax, 0));
! __ bind(L);
! __ verify_oop(rax);
}
if (!is_critical_native) {
// reset handle block
__ movptr(rcx, Address(thread, JavaThread::active_handles_offset()));
--- 2251,2265 ----
// We can finally stop using that last_Java_frame we setup ages ago
__ reset_last_Java_frame(thread, false);
! // Unbox oop result, e.g. JNIHandles::resolve value.
if (ret_type == T_OBJECT || ret_type == T_ARRAY) {
! __ resolve_jobject(rax /* value */,
! thread /* thread */,
! rcx /* tmp */);
}
if (!is_critical_native) {
// reset handle block
__ movptr(rcx, Address(thread, JavaThread::active_handles_offset()));
< prev index next >