mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 23:04:50 +02:00
8219969: Backout JDK-8219492
Reviewed-by: goetz, hseigel, tschatzl
This commit is contained in:
parent
fb7bbfac57
commit
e7eae4444d
4 changed files with 19 additions and 36 deletions
|
@ -920,23 +920,19 @@ void InterpreterRuntime::resolve_invoke(JavaThread* thread, Bytecodes::Code byte
|
|||
info.call_kind() == CallInfo::vtable_call, "");
|
||||
}
|
||||
#endif
|
||||
// Get sender or sender's unsafe_anonymous_host, and only set cpCache entry to resolved if
|
||||
// it is not an interface. The receiver for invokespecial calls within interface
|
||||
// methods must be checked for every call.
|
||||
InstanceKlass* sender = pool->pool_holder();
|
||||
sender = sender->is_unsafe_anonymous() ? sender->unsafe_anonymous_host() : sender;
|
||||
|
||||
switch (info.call_kind()) {
|
||||
case CallInfo::direct_call: {
|
||||
// Get sender or sender's unsafe_anonymous_host, and only set cpCache entry to resolved if
|
||||
// it is not an interface. The receiver for invokespecial calls within interface
|
||||
// methods must be checked for every call.
|
||||
InstanceKlass* pool_holder = pool->pool_holder();
|
||||
InstanceKlass* sender = pool_holder->is_unsafe_anonymous() ?
|
||||
pool_holder->unsafe_anonymous_host() : pool_holder;
|
||||
|
||||
case CallInfo::direct_call:
|
||||
cp_cache_entry->set_direct_call(
|
||||
bytecode,
|
||||
info.resolved_method(),
|
||||
sender->is_interface(),
|
||||
pool_holder);
|
||||
sender->is_interface());
|
||||
break;
|
||||
}
|
||||
case CallInfo::vtable_call:
|
||||
cp_cache_entry->set_vtable_call(
|
||||
bytecode,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue