equal
deleted
inserted
replaced
2060 assert(1 == (r->metadata_is_immediate()) + |
2060 assert(1 == (r->metadata_is_immediate()) + |
2061 (r->metadata_addr() >= metadata_begin() && r->metadata_addr() < metadata_end()), |
2061 (r->metadata_addr() >= metadata_begin() && r->metadata_addr() < metadata_end()), |
2062 "metadata must be found in exactly one place"); |
2062 "metadata must be found in exactly one place"); |
2063 if (r->metadata_is_immediate() && r->metadata_value() != NULL) { |
2063 if (r->metadata_is_immediate() && r->metadata_value() != NULL) { |
2064 Metadata* md = r->metadata_value(); |
2064 Metadata* md = r->metadata_value(); |
2065 f(md); |
2065 if (md != _method) f(md); |
2066 } |
2066 } |
2067 } else if (iter.type() == relocInfo::virtual_call_type) { |
2067 } else if (iter.type() == relocInfo::virtual_call_type) { |
2068 // Check compiledIC holders associated with this nmethod |
2068 // Check compiledIC holders associated with this nmethod |
2069 CompiledIC *ic = CompiledIC_at(&iter); |
2069 CompiledIC *ic = CompiledIC_at(&iter); |
2070 if (ic->is_icholder_call()) { |
2070 if (ic->is_icholder_call()) { |
2085 for (Metadata** p = metadata_begin(); p < metadata_end(); p++) { |
2085 for (Metadata** p = metadata_begin(); p < metadata_end(); p++) { |
2086 if (*p == Universe::non_oop_word() || *p == NULL) continue; // skip non-oops |
2086 if (*p == Universe::non_oop_word() || *p == NULL) continue; // skip non-oops |
2087 Metadata* md = *p; |
2087 Metadata* md = *p; |
2088 f(md); |
2088 f(md); |
2089 } |
2089 } |
2090 |
|
2091 // Call function Method*, not embedded in these other places. |
|
2092 if (_method != NULL) f(_method); |
|
2093 } |
2090 } |
2094 |
2091 |
2095 void nmethod::oops_do(OopClosure* f, bool allow_zombie) { |
2092 void nmethod::oops_do(OopClosure* f, bool allow_zombie) { |
2096 // make sure the oops ready to receive visitors |
2093 // make sure the oops ready to receive visitors |
2097 assert(allow_zombie || !is_zombie(), "should not call follow on zombie nmethod"); |
2094 assert(allow_zombie || !is_zombie(), "should not call follow on zombie nmethod"); |