mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 23:04:50 +02:00
8006267: InterfaceMethod_ref should allow invokestatic and invokespecial
Lambda changes; spec 0.6.2 - Allow static invokestatic and invokespecial calls to InterfaceMethod_ref Reviewed-by: dholmes, acorn
This commit is contained in:
parent
54b7ae1ff9
commit
f63b13e379
4 changed files with 44 additions and 12 deletions
|
@ -436,14 +436,19 @@ constantPoolHandle ClassFileParser::parse_constant_pool(TRAPS) {
|
|||
ref_index, CHECK_(nullHandle));
|
||||
break;
|
||||
case JVM_REF_invokeVirtual:
|
||||
case JVM_REF_invokeStatic:
|
||||
case JVM_REF_invokeSpecial:
|
||||
case JVM_REF_newInvokeSpecial:
|
||||
check_property(
|
||||
tag.is_method(),
|
||||
"Invalid constant pool index %u in class file %s (not a method)",
|
||||
ref_index, CHECK_(nullHandle));
|
||||
break;
|
||||
case JVM_REF_invokeStatic:
|
||||
case JVM_REF_invokeSpecial:
|
||||
check_property(
|
||||
tag.is_method() || tag.is_interface_method(),
|
||||
"Invalid constant pool index %u in class file %s (not a method)",
|
||||
ref_index, CHECK_(nullHandle));
|
||||
break;
|
||||
case JVM_REF_invokeInterface:
|
||||
check_property(
|
||||
tag.is_interface_method(),
|
||||
|
@ -3837,7 +3842,7 @@ instanceKlassHandle ClassFileParser::parseClassFile(Symbol* name,
|
|||
}
|
||||
|
||||
if (TraceClassLoadingPreorder) {
|
||||
tty->print("[Loading %s", name->as_klass_external_name());
|
||||
tty->print("[Loading %s", (name != NULL) ? name->as_klass_external_name() : "NoName");
|
||||
if (cfs->source() != NULL) tty->print(" from %s", cfs->source());
|
||||
tty->print_cr("]");
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue