Mercurial > hg > truffle
diff src/share/vm/classfile/genericSignatures.cpp @ 10128:41ed397cc0cd
8006267: InterfaceMethod_ref should allow invokestatic and invokespecial
Summary: Lambda changes; spec 0.6.2 - Allow static invokestatic and invokespecial calls to InterfaceMethod_ref
Reviewed-by: dholmes, acorn
author | bharadwaj |
---|---|
date | Thu, 18 Apr 2013 08:05:35 -0700 |
parents | 4735d2c84362 |
children | ef57c43512d6 |
line wrap: on
line diff
--- a/src/share/vm/classfile/genericSignatures.cpp Wed Apr 17 08:20:02 2013 -0400 +++ b/src/share/vm/classfile/genericSignatures.cpp Thu Apr 18 08:05:35 2013 -0700 @@ -268,8 +268,15 @@ Klass* outer = SystemDictionary::find( outer_name, class_loader, protection_domain, CHECK_NULL); if (outer == NULL && !THREAD->is_Compiler_thread()) { - outer = SystemDictionary::resolve_super_or_fail(original_name, - outer_name, class_loader, protection_domain, false, CHECK_NULL); + if (outer_name == ik->super()->name()) { + outer = SystemDictionary::resolve_super_or_fail(original_name, outer_name, + class_loader, protection_domain, + false, CHECK_NULL); + } + else { + outer = SystemDictionary::resolve_or_fail(outer_name, class_loader, + protection_domain, false, CHECK_NULL); + } } InstanceKlass* outer_ik;