hotspot/src/share/vm/code/nmethod.cpp
changeset 26558 b7df27df6384
parent 25492 d27050bdfb04
child 26563 d6561f9d04f2
equal deleted inserted replaced
26557:e399effe36f9 26558:b7df27df6384
  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");