Mercurial > hg > truffle
diff src/share/vm/oops/instanceKlass.cpp @ 12318:36b97be47bde
8011311: Private interface methods. Default conflicts:ICCE. no erased_super_default.
Reviewed-by: coleenp, bharadwaj, minqi
author | acorn |
---|---|
date | Tue, 01 Oct 2013 08:10:42 -0400 |
parents | 190899198332 |
children | cefad50507d8 3374b92de2d9 |
line wrap: on
line diff
--- a/src/share/vm/oops/instanceKlass.cpp Fri Sep 27 10:08:56 2013 -0400 +++ b/src/share/vm/oops/instanceKlass.cpp Tue Oct 01 08:10:42 2013 -0400 @@ -1419,6 +1419,8 @@ } // lookup a method in all the interfaces that this class implements +// Do NOT return private or static methods, new in JDK8 which are not externally visible +// They should only be found in the initial InterfaceMethodRef Method* InstanceKlass::lookup_method_in_all_interfaces(Symbol* name, Symbol* signature) const { Array<Klass*>* all_ifs = transitive_interfaces(); @@ -1427,7 +1429,7 @@ for (int i = 0; i < num_ifs; i++) { ik = InstanceKlass::cast(all_ifs->at(i)); Method* m = ik->lookup_method(name, signature); - if (m != NULL) { + if (m != NULL && m->is_public() && !m->is_static()) { return m; } }