equal
deleted
inserted
replaced
270 if (r->metadata_is_immediate() && r->metadata_value() != NULL) { |
270 if (r->metadata_is_immediate() && r->metadata_value() != NULL) { |
271 Metadata* md = r->metadata_value(); |
271 Metadata* md = r->metadata_value(); |
272 if (md != _method) f(md); |
272 if (md != _method) f(md); |
273 } |
273 } |
274 } else if (iter.type() == relocInfo::virtual_call_type) { |
274 } else if (iter.type() == relocInfo::virtual_call_type) { |
|
275 ResourceMark rm; |
275 // Check compiledIC holders associated with this nmethod |
276 // Check compiledIC holders associated with this nmethod |
276 CompiledIC *ic = CompiledIC_at(&iter); |
277 CompiledIC *ic = CompiledIC_at(&iter); |
277 if (ic->is_icholder_call()) { |
278 if (ic->is_icholder_call()) { |
278 CompiledICHolder* cichk = ic->cached_icholder(); |
279 CompiledICHolder* cichk = ic->cached_icholder(); |
279 f(cichk->holder_metadata()); |
280 f(cichk->holder_metadata()); |
442 assert(SafepointSynchronize::is_at_safepoint(), "cleaning of IC's only allowed at safepoint"); |
443 assert(SafepointSynchronize::is_at_safepoint(), "cleaning of IC's only allowed at safepoint"); |
443 if (is_zombie()) { |
444 if (is_zombie()) { |
444 return; |
445 return; |
445 } |
446 } |
446 |
447 |
|
448 ResourceMark rm; |
447 RelocIterator iter(this); |
449 RelocIterator iter(this); |
448 while (iter.next()) { |
450 while (iter.next()) { |
449 iter.reloc()->clear_inline_cache(); |
451 iter.reloc()->clear_inline_cache(); |
450 if (iter.type() == relocInfo::opt_virtual_call_type) { |
452 if (iter.type() == relocInfo::opt_virtual_call_type) { |
451 CompiledIC* cic = CompiledIC_at(&iter); |
453 CompiledIC* cic = CompiledIC_at(&iter); |