189 address entry; |
189 address entry; |
190 if (is_invoke_interface) { |
190 if (is_invoke_interface) { |
191 int index = klassItable::compute_itable_index(call_info->resolved_method()()); |
191 int index = klassItable::compute_itable_index(call_info->resolved_method()()); |
192 entry = VtableStubs::create_stub(false, index, method()); |
192 entry = VtableStubs::create_stub(false, index, method()); |
193 assert(entry != NULL, "entry not computed"); |
193 assert(entry != NULL, "entry not computed"); |
194 Klass* k = call_info->resolved_method()->method_holder(); |
194 InstanceKlass* k = call_info->resolved_method()->method_holder(); |
195 assert(Klass::cast(k)->is_interface(), "sanity check"); |
195 assert(k->is_interface(), "sanity check"); |
196 InlineCacheBuffer::create_transition_stub(this, k, entry); |
196 InlineCacheBuffer::create_transition_stub(this, k, entry); |
197 } else { |
197 } else { |
198 // Can be different than method->vtable_index(), due to package-private etc. |
198 // Can be different than method->vtable_index(), due to package-private etc. |
199 int vtable_index = call_info->vtable_index(); |
199 int vtable_index = call_info->vtable_index(); |
200 entry = VtableStubs::create_stub(true, vtable_index, method()); |
200 entry = VtableStubs::create_stub(true, vtable_index, method()); |