equal
deleted
inserted
replaced
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 |