< prev index next >

src/hotspot/share/jvmci/jvmciCodeInstaller.cpp

Print this page
*** 539,11 ***
  
      JVMCIObject mirror = installed_code;
      result = runtime()->register_method(jvmci_env(), method, nmethod_handle, entry_bci, &_offsets, _orig_pc_offset, &buffer,
                                          stack_slots, _debug_recorder->_oopmaps, &_exception_handler_table, &_implicit_exception_table,
                                          compiler, _debug_recorder, _dependencies, id,
!                                         has_unsafe_access, _has_wide_vector, compiled_code, mirror,
                                          failed_speculations, speculations, speculations_len);
      if (result == JVMCI::ok) {
        nmethod* nm = nmethod_handle.code()->as_nmethod_or_null();
        cb = nm;
        if (compile_state == NULL) {
--- 539,11 ---
  
      JVMCIObject mirror = installed_code;
      result = runtime()->register_method(jvmci_env(), method, nmethod_handle, entry_bci, &_offsets, _orig_pc_offset, &buffer,
                                          stack_slots, _debug_recorder->_oopmaps, &_exception_handler_table, &_implicit_exception_table,
                                          compiler, _debug_recorder, _dependencies, id,
!                                         _has_monitors, has_unsafe_access, _has_wide_vector, compiled_code, mirror,
                                          failed_speculations, speculations, speculations_len);
      if (result == JVMCI::ok) {
        nmethod* nm = nmethod_handle.code()->as_nmethod_or_null();
        cb = nm;
        if (compile_state == NULL) {

*** 1001,10 ***
--- 1001,13 ---
  
    if (frame.is_non_null()) {
      jint local_count = jvmci_env()->get_BytecodeFrame_numLocals(frame);
      jint expression_count = jvmci_env()->get_BytecodeFrame_numStack(frame);
      jint monitor_count = jvmci_env()->get_BytecodeFrame_numLocks(frame);
+     if (monitor_count > 0 && !_has_monitors) {
+       _has_monitors = true;
+     }
      JVMCIObjectArray values = jvmci_env()->get_BytecodeFrame_values(frame);
      JVMCIObjectArray slotKinds = jvmci_env()->get_BytecodeFrame_slotKinds(frame);
  
      if (values.is_null() || slotKinds.is_null()) {
        JVMCI_THROW(NullPointerException);
< prev index next >