equal
deleted
inserted
replaced
256 } |
256 } |
257 |
257 |
258 void ciReceiverTypeData::translate_receiver_data_from(const ProfileData* data) { |
258 void ciReceiverTypeData::translate_receiver_data_from(const ProfileData* data) { |
259 for (uint row = 0; row < row_limit(); row++) { |
259 for (uint row = 0; row < row_limit(); row++) { |
260 Klass* k = data->as_ReceiverTypeData()->receiver(row); |
260 Klass* k = data->as_ReceiverTypeData()->receiver(row); |
261 if (k != NULL) { |
261 if (k != NULL && k->is_loader_alive()) { |
262 if (k->is_loader_alive()) { |
262 ciKlass* klass = CURRENT_ENV->get_klass(k); |
263 ciKlass* klass = CURRENT_ENV->get_klass(k); |
263 set_receiver(row, klass); |
264 set_receiver(row, klass); |
264 } else { |
265 } else { |
265 // With concurrent class unloading, the MDO could have stale metadata; override it |
266 // With concurrent class unloading, the MDO could have stale metadata; override it |
266 clear_row(row); |
267 clear_row(row); |
|
268 } |
|
269 } |
267 } |
270 } |
268 } |
271 } |
269 } |
272 |
270 |
273 void ciTypeStackSlotEntries::translate_type_data_from(const TypeStackSlotEntries* entries) { |
271 void ciTypeStackSlotEntries::translate_type_data_from(const TypeStackSlotEntries* entries) { |