src/share/vm/gc_implementation/shared/markSweep.cpp

Print this page
rev 5891 : [mq]: hideDoCodeRoots


  30 #include "gc_interface/collectedHeap.inline.hpp"
  31 #include "oops/methodData.hpp"
  32 #include "oops/objArrayKlass.inline.hpp"
  33 #include "oops/oop.inline.hpp"
  34 
  35 uint                    MarkSweep::_total_invocations = 0;
  36 
  37 Stack<oop, mtGC>              MarkSweep::_marking_stack;
  38 Stack<ObjArrayTask, mtGC>     MarkSweep::_objarray_stack;
  39 
  40 Stack<oop, mtGC>              MarkSweep::_preserved_oop_stack;
  41 Stack<markOop, mtGC>          MarkSweep::_preserved_mark_stack;
  42 size_t                  MarkSweep::_preserved_count = 0;
  43 size_t                  MarkSweep::_preserved_count_max = 0;
  44 PreservedMark*          MarkSweep::_preserved_marks = NULL;
  45 ReferenceProcessor*     MarkSweep::_ref_processor   = NULL;
  46 STWGCTimer*             MarkSweep::_gc_timer        = NULL;
  47 SerialOldTracer*        MarkSweep::_gc_tracer       = NULL;
  48 
  49 MarkSweep::FollowRootClosure  MarkSweep::follow_root_closure;
  50 CodeBlobToOopClosure MarkSweep::follow_code_root_closure(&MarkSweep::follow_root_closure, /*do_marking=*/ true);
  51 
  52 void MarkSweep::FollowRootClosure::do_oop(oop* p)       { follow_root(p); }
  53 void MarkSweep::FollowRootClosure::do_oop(narrowOop* p) { follow_root(p); }
  54 
  55 MarkSweep::MarkAndPushClosure MarkSweep::mark_and_push_closure;
  56 MarkSweep::FollowKlassClosure MarkSweep::follow_klass_closure;
  57 MarkSweep::AdjustKlassClosure MarkSweep::adjust_klass_closure;
  58 
  59 void MarkSweep::MarkAndPushClosure::do_oop(oop* p)       { mark_and_push(p); }
  60 void MarkSweep::MarkAndPushClosure::do_oop(narrowOop* p) { mark_and_push(p); }
  61 
  62 void MarkSweep::FollowKlassClosure::do_klass(Klass* klass) {
  63   klass->oops_do(&MarkSweep::mark_and_push_closure);
  64 }
  65 void MarkSweep::AdjustKlassClosure::do_klass(Klass* klass) {
  66   klass->oops_do(&MarkSweep::adjust_pointer_closure);
  67 }
  68 
  69 void MarkSweep::follow_class_loader(ClassLoaderData* cld) {
  70   cld->oops_do(&MarkSweep::mark_and_push_closure, &MarkSweep::follow_klass_closure, true);




  30 #include "gc_interface/collectedHeap.inline.hpp"
  31 #include "oops/methodData.hpp"
  32 #include "oops/objArrayKlass.inline.hpp"
  33 #include "oops/oop.inline.hpp"
  34 
  35 uint                    MarkSweep::_total_invocations = 0;
  36 
  37 Stack<oop, mtGC>              MarkSweep::_marking_stack;
  38 Stack<ObjArrayTask, mtGC>     MarkSweep::_objarray_stack;
  39 
  40 Stack<oop, mtGC>              MarkSweep::_preserved_oop_stack;
  41 Stack<markOop, mtGC>          MarkSweep::_preserved_mark_stack;
  42 size_t                  MarkSweep::_preserved_count = 0;
  43 size_t                  MarkSweep::_preserved_count_max = 0;
  44 PreservedMark*          MarkSweep::_preserved_marks = NULL;
  45 ReferenceProcessor*     MarkSweep::_ref_processor   = NULL;
  46 STWGCTimer*             MarkSweep::_gc_timer        = NULL;
  47 SerialOldTracer*        MarkSweep::_gc_tracer       = NULL;
  48 
  49 MarkSweep::FollowRootClosure  MarkSweep::follow_root_closure;

  50 
  51 void MarkSweep::FollowRootClosure::do_oop(oop* p)       { follow_root(p); }
  52 void MarkSweep::FollowRootClosure::do_oop(narrowOop* p) { follow_root(p); }
  53 
  54 MarkSweep::MarkAndPushClosure MarkSweep::mark_and_push_closure;
  55 MarkSweep::FollowKlassClosure MarkSweep::follow_klass_closure;
  56 MarkSweep::AdjustKlassClosure MarkSweep::adjust_klass_closure;
  57 
  58 void MarkSweep::MarkAndPushClosure::do_oop(oop* p)       { mark_and_push(p); }
  59 void MarkSweep::MarkAndPushClosure::do_oop(narrowOop* p) { mark_and_push(p); }
  60 
  61 void MarkSweep::FollowKlassClosure::do_klass(Klass* klass) {
  62   klass->oops_do(&MarkSweep::mark_and_push_closure);
  63 }
  64 void MarkSweep::AdjustKlassClosure::do_klass(Klass* klass) {
  65   klass->oops_do(&MarkSweep::adjust_pointer_closure);
  66 }
  67 
  68 void MarkSweep::follow_class_loader(ClassLoaderData* cld) {
  69   cld->oops_do(&MarkSweep::mark_and_push_closure, &MarkSweep::follow_klass_closure, true);