Mercurial > hg > truffle
comparison src/share/vm/classfile/classFileParser.cpp @ 13398:19146c82b6fc
8028520: JVM should not throw VerifyError when a private method overrides a final method
Summary: Exclude private methods when checking for final method override.
Reviewed-by: kamg, coleenp, dholmes, mseledtsov
author | hseigel |
---|---|
date | Thu, 21 Nov 2013 14:41:13 -0500 |
parents | fce21ac5968d |
children | 02f27ecb4f3a 715bc50198c1 e254e5940c19 4638c4d7ff10 |
comparison
equal
deleted
inserted
replaced
13392:396564992823 | 13398:19146c82b6fc |
---|---|
4481 | 4481 |
4482 // go thru each method and check if it overrides a final method | 4482 // go thru each method and check if it overrides a final method |
4483 for (int index = 0; index < num_methods; index++) { | 4483 for (int index = 0; index < num_methods; index++) { |
4484 Method* m = methods->at(index); | 4484 Method* m = methods->at(index); |
4485 | 4485 |
4486 // skip static and <init> methods | 4486 // skip private, static, and <init> methods |
4487 if ((!m->is_static()) && | 4487 if ((!m->is_private() && !m->is_static()) && |
4488 (m->name() != vmSymbols::object_initializer_name())) { | 4488 (m->name() != vmSymbols::object_initializer_name())) { |
4489 | 4489 |
4490 Symbol* name = m->name(); | 4490 Symbol* name = m->name(); |
4491 Symbol* signature = m->signature(); | 4491 Symbol* signature = m->signature(); |
4492 Klass* k = this_klass->super(); | 4492 Klass* k = this_klass->super(); |