8200466: Revisit the setting of _transitive_interfaces in InstanceKlass

Delay the setting of _transitive_interfaces until after initialize_supers() in fill_instance_klass().

Reviewed-by: iklam, coleenp
This commit is contained in:
Calvin Cheung 2018-05-02 09:26:10 -07:00
parent 7dc011ccca
commit aedb6040c6
10 changed files with 35 additions and 18 deletions

View file

@ -331,7 +331,9 @@ bool ObjArrayKlass::can_be_primary_super_slow() const {
return Klass::can_be_primary_super_slow();
}
GrowableArray<Klass*>* ObjArrayKlass::compute_secondary_supers(int num_extra_slots) {
GrowableArray<Klass*>* ObjArrayKlass::compute_secondary_supers(int num_extra_slots,
Array<Klass*>* transitive_interfaces) {
assert(transitive_interfaces == NULL, "sanity");
// interfaces = { cloneable_klass, serializable_klass, elemSuper[], ... };
Array<Klass*>* elem_supers = element_klass()->secondary_supers();
int num_elem_supers = elem_supers == NULL ? 0 : elem_supers->length();