< prev index next >

src/hotspot/share/memory/iterator.cpp

Print this page




  46 void CodeBlobToOopClosure::do_nmethod(nmethod* nm) {
  47   nm->oops_do(_cl);
  48   if (_fix_relocations) {
  49     nm->fix_oop_relocations();
  50   }
  51 }
  52 
  53 void CodeBlobToOopClosure::do_code_blob(CodeBlob* cb) {
  54   nmethod* nm = cb->as_nmethod_or_null();
  55   if (nm != NULL) {
  56     do_nmethod(nm);
  57   }
  58 }
  59 
  60 void MarkingCodeBlobClosure::do_code_blob(CodeBlob* cb) {
  61   nmethod* nm = cb->as_nmethod_or_null();
  62   if (nm != NULL && !nm->test_set_oops_do_mark()) {
  63     do_nmethod(nm);
  64   }
  65 }
  66 
  67 // Generate the *Klass::oop_oop_iterate functions for the base class
  68 // of the oop closures. These versions use the virtual do_oop calls,
  69 // instead of the devirtualized do_oop_nv version.
  70 ALL_KLASS_OOP_OOP_ITERATE_DEFN(ExtendedOopClosure,  _v)
  71 
  72 // Generate the *Klass::oop_oop_iterate functions
  73 // for the NoHeaderExtendedOopClosure helper class.
  74 ALL_KLASS_OOP_OOP_ITERATE_DEFN(NoHeaderExtendedOopClosure, _nv)


  46 void CodeBlobToOopClosure::do_nmethod(nmethod* nm) {
  47   nm->oops_do(_cl);
  48   if (_fix_relocations) {
  49     nm->fix_oop_relocations();
  50   }
  51 }
  52 
  53 void CodeBlobToOopClosure::do_code_blob(CodeBlob* cb) {
  54   nmethod* nm = cb->as_nmethod_or_null();
  55   if (nm != NULL) {
  56     do_nmethod(nm);
  57   }
  58 }
  59 
  60 void MarkingCodeBlobClosure::do_code_blob(CodeBlob* cb) {
  61   nmethod* nm = cb->as_nmethod_or_null();
  62   if (nm != NULL && !nm->test_set_oops_do_mark()) {
  63     do_nmethod(nm);
  64   }
  65 }









< prev index next >