src/hotspot/share/runtime/sharedRuntime.cpp
changeset 52661 4f45c682eab0
parent 52384 d6dc479bcdd3
child 52857 7e268f863ff0
equal deleted inserted replaced
52660:9cb53c505acd 52661:4f45c682eab0
  1277          (!is_virtual && invoke_code == Bytecodes::_invokespecial) ||
  1277          (!is_virtual && invoke_code == Bytecodes::_invokespecial) ||
  1278          (!is_virtual && invoke_code == Bytecodes::_invokehandle ) ||
  1278          (!is_virtual && invoke_code == Bytecodes::_invokehandle ) ||
  1279          (!is_virtual && invoke_code == Bytecodes::_invokedynamic) ||
  1279          (!is_virtual && invoke_code == Bytecodes::_invokedynamic) ||
  1280          ( is_virtual && invoke_code != Bytecodes::_invokestatic ), "inconsistent bytecode");
  1280          ( is_virtual && invoke_code != Bytecodes::_invokestatic ), "inconsistent bytecode");
  1281 
  1281 
  1282   assert(caller_nm->is_alive(), "It should be alive");
  1282   assert(caller_nm->is_alive() && !caller_nm->is_unloading(), "It should be alive");
  1283 
  1283 
  1284 #ifndef PRODUCT
  1284 #ifndef PRODUCT
  1285   // tracing/debugging/statistics
  1285   // tracing/debugging/statistics
  1286   int *addr = (is_optimized) ? (&_resolve_opt_virtual_ctr) :
  1286   int *addr = (is_optimized) ? (&_resolve_opt_virtual_ctr) :
  1287                 (is_virtual) ? (&_resolve_virtual_ctr) :
  1287                 (is_virtual) ? (&_resolve_virtual_ctr) :
  1604         }
  1604         }
  1605         should_be_mono = true;
  1605         should_be_mono = true;
  1606       } else if (inline_cache->is_icholder_call()) {
  1606       } else if (inline_cache->is_icholder_call()) {
  1607         CompiledICHolder* ic_oop = inline_cache->cached_icholder();
  1607         CompiledICHolder* ic_oop = inline_cache->cached_icholder();
  1608         if (ic_oop != NULL) {
  1608         if (ic_oop != NULL) {
  1609 
  1609           if (!ic_oop->is_loader_alive()) {
  1610           if (receiver()->klass() == ic_oop->holder_klass()) {
  1610             // Deferred IC cleaning due to concurrent class unloading
       
  1611             inline_cache->set_to_clean();
       
  1612           } else if (receiver()->klass() == ic_oop->holder_klass()) {
  1611             // This isn't a real miss. We must have seen that compiled code
  1613             // This isn't a real miss. We must have seen that compiled code
  1612             // is now available and we want the call site converted to a
  1614             // is now available and we want the call site converted to a
  1613             // monomorphic compiled call site.
  1615             // monomorphic compiled call site.
  1614             // We can't assert for callee_method->code() != NULL because it
  1616             // We can't assert for callee_method->code() != NULL because it
  1615             // could have been deoptimized in the meantime
  1617             // could have been deoptimized in the meantime