hotspot/src/share/vm/code/nmethod.cpp
changeset 35492 c8c0273e6b91
parent 35175 382588e9104a
child 35495 e27da438fa13
equal deleted inserted replaced
35491:663c609dfeee 35492:c8c0273e6b91
   690              nmethod_size, offsets->value(CodeOffsets::Frame_Complete), frame_size, oop_maps),
   690              nmethod_size, offsets->value(CodeOffsets::Frame_Complete), frame_size, oop_maps),
   691   _native_receiver_sp_offset(basic_lock_owner_sp_offset),
   691   _native_receiver_sp_offset(basic_lock_owner_sp_offset),
   692   _native_basic_lock_sp_offset(basic_lock_sp_offset)
   692   _native_basic_lock_sp_offset(basic_lock_sp_offset)
   693 {
   693 {
   694   {
   694   {
   695     debug_only(No_Safepoint_Verifier nsv;)
   695     debug_only(NoSafepointVerifier nsv;)
   696     assert_locked_or_safepoint(CodeCache_lock);
   696     assert_locked_or_safepoint(CodeCache_lock);
   697 
   697 
   698     init_defaults();
   698     init_defaults();
   699     _method                  = method;
   699     _method                  = method;
   700     _entry_bci               = InvocationEntryBci;
   700     _entry_bci               = InvocationEntryBci;
   794   _native_receiver_sp_offset(in_ByteSize(-1)),
   794   _native_receiver_sp_offset(in_ByteSize(-1)),
   795   _native_basic_lock_sp_offset(in_ByteSize(-1))
   795   _native_basic_lock_sp_offset(in_ByteSize(-1))
   796 {
   796 {
   797   assert(debug_info->oop_recorder() == code_buffer->oop_recorder(), "shared OR");
   797   assert(debug_info->oop_recorder() == code_buffer->oop_recorder(), "shared OR");
   798   {
   798   {
   799     debug_only(No_Safepoint_Verifier nsv;)
   799     debug_only(NoSafepointVerifier nsv;)
   800     assert_locked_or_safepoint(CodeCache_lock);
   800     assert_locked_or_safepoint(CodeCache_lock);
   801 
   801 
   802     init_defaults();
   802     init_defaults();
   803     _method                  = method;
   803     _method                  = method;
   804     _entry_bci               = entry_bci;
   804     _entry_bci               = entry_bci;
  1402   assert(!is_zombie(), "should not already be a zombie");
  1402   assert(!is_zombie(), "should not already be a zombie");
  1403 
  1403 
  1404   // Make sure neither the nmethod nor the method is flushed in case of a safepoint in code below.
  1404   // Make sure neither the nmethod nor the method is flushed in case of a safepoint in code below.
  1405   nmethodLocker nml(this);
  1405   nmethodLocker nml(this);
  1406   methodHandle the_method(method());
  1406   methodHandle the_method(method());
  1407   No_Safepoint_Verifier nsv;
  1407   NoSafepointVerifier nsv;
  1408 
  1408 
  1409   // during patching, depending on the nmethod state we must notify the GC that
  1409   // during patching, depending on the nmethod state we must notify the GC that
  1410   // code has been unloaded, unregistering it. We cannot do this right while
  1410   // code has been unloaded, unregistering it. We cannot do this right while
  1411   // holding the Patching_lock because we need to use the CodeCache_lock. This
  1411   // holding the Patching_lock because we need to use the CodeCache_lock. This
  1412   // would be prone to deadlocks.
  1412   // would be prone to deadlocks.