hotspot/src/share/vm/gc_implementation/shared/markSweep.cpp
changeset 25492 d27050bdfb04
parent 25491 70fb742e40aa
child 29701 f638fc81a3d0
equal deleted inserted replaced
25491:70fb742e40aa 25492:d27050bdfb04
    52 
    52 
    53 void MarkSweep::FollowRootClosure::do_oop(oop* p)       { follow_root(p); }
    53 void MarkSweep::FollowRootClosure::do_oop(oop* p)       { follow_root(p); }
    54 void MarkSweep::FollowRootClosure::do_oop(narrowOop* p) { follow_root(p); }
    54 void MarkSweep::FollowRootClosure::do_oop(narrowOop* p) { follow_root(p); }
    55 
    55 
    56 MarkSweep::MarkAndPushClosure MarkSweep::mark_and_push_closure;
    56 MarkSweep::MarkAndPushClosure MarkSweep::mark_and_push_closure;
    57 MarkSweep::FollowKlassClosure MarkSweep::follow_klass_closure;
    57 CLDToOopClosure               MarkSweep::follow_cld_closure(&mark_and_push_closure);
    58 MarkSweep::AdjustKlassClosure MarkSweep::adjust_klass_closure;
    58 CLDToOopClosure               MarkSweep::adjust_cld_closure(&adjust_pointer_closure);
    59 
    59 
    60 void MarkSweep::MarkAndPushClosure::do_oop(oop* p)       { mark_and_push(p); }
    60 void MarkSweep::MarkAndPushClosure::do_oop(oop* p)       { mark_and_push(p); }
    61 void MarkSweep::MarkAndPushClosure::do_oop(narrowOop* p) { mark_and_push(p); }
    61 void MarkSweep::MarkAndPushClosure::do_oop(narrowOop* p) { mark_and_push(p); }
    62 
    62 
    63 void MarkSweep::FollowKlassClosure::do_klass(Klass* klass) {
       
    64   klass->oops_do(&MarkSweep::mark_and_push_closure);
       
    65 }
       
    66 void MarkSweep::AdjustKlassClosure::do_klass(Klass* klass) {
       
    67   klass->oops_do(&MarkSweep::adjust_pointer_closure);
       
    68 }
       
    69 
       
    70 void MarkSweep::follow_class_loader(ClassLoaderData* cld) {
    63 void MarkSweep::follow_class_loader(ClassLoaderData* cld) {
    71   cld->oops_do(&MarkSweep::mark_and_push_closure, &MarkSweep::follow_klass_closure, true);
    64   MarkSweep::follow_cld_closure.do_cld(cld);
    72 }
    65 }
    73 
    66 
    74 void MarkSweep::follow_stack() {
    67 void MarkSweep::follow_stack() {
    75   do {
    68   do {
    76     while (!_marking_stack.is_empty()) {
    69     while (!_marking_stack.is_empty()) {