1746 // The only exception is compiledICHolder oops which may |
1746 // The only exception is compiledICHolder oops which may |
1747 // yet be marked below. (We check this further below). |
1747 // yet be marked below. (We check this further below). |
1748 CompiledICHolder* cichk_oop = ic->cached_icholder(); |
1748 CompiledICHolder* cichk_oop = ic->cached_icholder(); |
1749 |
1749 |
1750 if (mark_on_stack) { |
1750 if (mark_on_stack) { |
1751 Metadata::mark_on_stack(cichk_oop->holder_method()); |
1751 Metadata::mark_on_stack(cichk_oop->holder_metadata()); |
1752 Metadata::mark_on_stack(cichk_oop->holder_klass()); |
1752 Metadata::mark_on_stack(cichk_oop->holder_klass()); |
1753 } |
1753 } |
1754 |
1754 |
1755 if (cichk_oop->holder_method()->method_holder()->is_loader_alive(is_alive) && |
1755 if (cichk_oop->is_loader_alive(is_alive)) { |
1756 cichk_oop->holder_klass()->is_loader_alive(is_alive)) { |
|
1757 return; |
1756 return; |
1758 } |
1757 } |
1759 } else { |
1758 } else { |
1760 Metadata* ic_oop = ic->cached_metadata(); |
1759 Metadata* ic_oop = ic->cached_metadata(); |
1761 if (ic_oop != NULL) { |
1760 if (ic_oop != NULL) { |
2178 } else if (iter.type() == relocInfo::virtual_call_type) { |
2177 } else if (iter.type() == relocInfo::virtual_call_type) { |
2179 // Check compiledIC holders associated with this nmethod |
2178 // Check compiledIC holders associated with this nmethod |
2180 CompiledIC *ic = CompiledIC_at(&iter); |
2179 CompiledIC *ic = CompiledIC_at(&iter); |
2181 if (ic->is_icholder_call()) { |
2180 if (ic->is_icholder_call()) { |
2182 CompiledICHolder* cichk = ic->cached_icholder(); |
2181 CompiledICHolder* cichk = ic->cached_icholder(); |
2183 f(cichk->holder_method()); |
2182 f(cichk->holder_metadata()); |
2184 f(cichk->holder_klass()); |
2183 f(cichk->holder_klass()); |
2185 } else { |
2184 } else { |
2186 Metadata* ic_oop = ic->cached_metadata(); |
2185 Metadata* ic_oop = ic->cached_metadata(); |
2187 if (ic_oop != NULL) { |
2186 if (ic_oop != NULL) { |
2188 f(ic_oop); |
2187 f(ic_oop); |