--- old/src/share/vm/code/compiledIC.cpp Fri Mar 30 18:59:31 2018 +++ new/src/share/vm/code/compiledIC.cpp Fri Mar 30 18:59:30 2018 @@ -232,7 +232,7 @@ assert(k->verify_itable_index(itable_index), "sanity check"); #endif //ASSERT CompiledICHolder* holder = new CompiledICHolder(call_info->resolved_method()->method_holder(), - call_info->resolved_klass()()); + call_info->resolved_klass()(), false); holder->claim(); InlineCacheBuffer::create_transition_stub(this, holder, entry); } else { @@ -270,7 +270,7 @@ assert(!is_optimized(), "an optimized call cannot be megamorphic"); // Cannot rely on cached_value. It is either an interface or a method. - return VtableStubs::is_entry_point(ic_destination()); + return VtableStubs::entry_point(ic_destination()) != NULL; } bool CompiledIC::is_call_to_compiled() const { @@ -534,9 +534,11 @@ return true; } // itable stubs also use CompiledICHolder - if (VtableStubs::is_entry_point(entry) && VtableStubs::stub_containing(entry)->is_itable_stub()) { - return true; + if (cb != NULL && cb->is_vtable_blob()) { + VtableStub* s = VtableStubs::entry_point(entry); + return (s != NULL) && s->is_itable_stub(); } + return false; }