< prev index next >

src/cpu/x86/vm/sharedRuntime_x86_32.cpp

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 2224,2238 **** // 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 (CheckJNICalls) { // clear_pending_jni_exception_check __ movptr(Address(thread, JavaThread::pending_jni_exception_check_fn_offset()), NULL_WORD); --- 2224,2241 ---- // 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 (CheckJNICalls) { // clear_pending_jni_exception_check __ movptr(Address(thread, JavaThread::pending_jni_exception_check_fn_offset()), NULL_WORD);
< prev index next >