mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 14:54:52 +02:00
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:
parent
7dc011ccca
commit
aedb6040c6
10 changed files with 35 additions and 18 deletions
|
@ -224,7 +224,7 @@ bool Klass::can_be_primary_super_slow() const {
|
|||
return true;
|
||||
}
|
||||
|
||||
void Klass::initialize_supers(Klass* k, TRAPS) {
|
||||
void Klass::initialize_supers(Klass* k, Array<Klass*>* transitive_interfaces, TRAPS) {
|
||||
if (FastSuperclassLimit == 0) {
|
||||
// None of the other machinery matters.
|
||||
set_super(k);
|
||||
|
@ -292,7 +292,7 @@ void Klass::initialize_supers(Klass* k, TRAPS) {
|
|||
ResourceMark rm(THREAD); // need to reclaim GrowableArrays allocated below
|
||||
|
||||
// Compute the "real" non-extra secondaries.
|
||||
GrowableArray<Klass*>* secondaries = compute_secondary_supers(extras);
|
||||
GrowableArray<Klass*>* secondaries = compute_secondary_supers(extras, transitive_interfaces);
|
||||
if (secondaries == NULL) {
|
||||
// secondary_supers set by compute_secondary_supers
|
||||
return;
|
||||
|
@ -342,8 +342,10 @@ void Klass::initialize_supers(Klass* k, TRAPS) {
|
|||
}
|
||||
}
|
||||
|
||||
GrowableArray<Klass*>* Klass::compute_secondary_supers(int num_extra_slots) {
|
||||
GrowableArray<Klass*>* Klass::compute_secondary_supers(int num_extra_slots,
|
||||
Array<Klass*>* transitive_interfaces) {
|
||||
assert(num_extra_slots == 0, "override for complex klasses");
|
||||
assert(transitive_interfaces == NULL, "sanity");
|
||||
set_secondary_supers(Universe::the_empty_klass_array());
|
||||
return NULL;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue