Mercurial > hg > graal-compiler
comparison 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 |
comparison
equal
deleted
inserted
replaced
10126:63e31ce40bdb | 10128:41ed397cc0cd |
---|---|
266 | 266 |
267 Symbol* outer_name = ik->constants()->klass_name_at(outer_index); | 267 Symbol* outer_name = ik->constants()->klass_name_at(outer_index); |
268 Klass* outer = SystemDictionary::find( | 268 Klass* outer = SystemDictionary::find( |
269 outer_name, class_loader, protection_domain, CHECK_NULL); | 269 outer_name, class_loader, protection_domain, CHECK_NULL); |
270 if (outer == NULL && !THREAD->is_Compiler_thread()) { | 270 if (outer == NULL && !THREAD->is_Compiler_thread()) { |
271 outer = SystemDictionary::resolve_super_or_fail(original_name, | 271 if (outer_name == ik->super()->name()) { |
272 outer_name, class_loader, protection_domain, false, CHECK_NULL); | 272 outer = SystemDictionary::resolve_super_or_fail(original_name, outer_name, |
273 class_loader, protection_domain, | |
274 false, CHECK_NULL); | |
275 } | |
276 else { | |
277 outer = SystemDictionary::resolve_or_fail(outer_name, class_loader, | |
278 protection_domain, false, CHECK_NULL); | |
279 } | |
273 } | 280 } |
274 | 281 |
275 InstanceKlass* outer_ik; | 282 InstanceKlass* outer_ik; |
276 ClassDescriptor* outer_spec = NULL; | 283 ClassDescriptor* outer_spec = NULL; |
277 if (outer == NULL) { | 284 if (outer == NULL) { |