< prev index next >
src/hotspot/share/prims/methodHandles.cpp
Print this page
@@ -236,12 +236,17 @@
tty->print_cr("memberName: invokeinterface method_holder::method: %s, itableindex: %d, access_flags:",
Method::name_and_sig_as_C_string(m->method_holder(), m->name(), m->signature()),
vmindex);
m->access_flags().print_on(tty);
if (!m->is_abstract()) {
+ if (!m->is_private()) {
tty->print("default");
}
+ else {
+ tty->print("private-intf");
+ }
+ }
tty->cr();
}
break;
case CallInfo::vtable_call:
@@ -290,10 +295,13 @@
if (m->is_static()) {
flags |= IS_METHOD | (JVM_REF_invokeStatic << REFERENCE_KIND_SHIFT);
} else if (m->is_initializer()) {
flags |= IS_CONSTRUCTOR | (JVM_REF_invokeSpecial << REFERENCE_KIND_SHIFT);
} else {
+ // "special" reflects that this is a direct call, not that it
+ // necessarily originates from an invokespecial. We can also do
+ // direct calls for private and/or final non-static methods.
flags |= IS_METHOD | (JVM_REF_invokeSpecial << REFERENCE_KIND_SHIFT);
}
break;
default: assert(false, "bad CallInfo"); return NULL;
< prev index next >