< prev index next > src/hotspot/share/ci/ciMethodData.cpp
MDO cleaning
void ciReceiverTypeData::translate_receiver_data_from(const ProfileData* data) {
for (uint row = 0; row < row_limit(); row++) {
Klass* k = data->as_ReceiverTypeData()->receiver(row);
if (k != NULL) {
- ciKlass* klass = CURRENT_ENV->get_klass(k);
- set_receiver(row, klass);
+ if (k->is_loader_alive()) {
+ ciKlass* klass = CURRENT_ENV->get_klass(k);
+ set_receiver(row, klass);
+ } else {
+ // With concurrent class unloading, the MDO could have stale metadata; override it
+ clear_row(row);
+ }
}
}
}
< prev index next >