Mercurial > hg > graal-jvmci-8
comparison src/share/vm/gc_implementation/shared/markSweep.cpp @ 20804:7848fc12602b
Merge with jdk8u40-b25
author | Gilles Duboscq <gilles.m.duboscq@oracle.com> |
---|---|
date | Tue, 07 Apr 2015 14:58:49 +0200 |
parents | 52b4284cb496 2c6ef90f030a |
children |
comparison
equal
deleted
inserted
replaced
20184:84105dcdb05b | 20804:7848fc12602b |
---|---|
47 ReferenceProcessor* MarkSweep::_ref_processor = NULL; | 47 ReferenceProcessor* MarkSweep::_ref_processor = NULL; |
48 STWGCTimer* MarkSweep::_gc_timer = NULL; | 48 STWGCTimer* MarkSweep::_gc_timer = NULL; |
49 SerialOldTracer* MarkSweep::_gc_tracer = NULL; | 49 SerialOldTracer* MarkSweep::_gc_tracer = NULL; |
50 | 50 |
51 MarkSweep::FollowRootClosure MarkSweep::follow_root_closure; | 51 MarkSweep::FollowRootClosure MarkSweep::follow_root_closure; |
52 CodeBlobToOopClosure MarkSweep::follow_code_root_closure(&MarkSweep::follow_root_closure, /*do_marking=*/ true); | |
53 | 52 |
54 void MarkSweep::FollowRootClosure::do_oop(oop* p) { follow_root(p); } | 53 void MarkSweep::FollowRootClosure::do_oop(oop* p) { follow_root(p); } |
55 void MarkSweep::FollowRootClosure::do_oop(narrowOop* p) { follow_root(p); } | 54 void MarkSweep::FollowRootClosure::do_oop(narrowOop* p) { follow_root(p); } |
56 | 55 |
57 MarkSweep::MarkAndPushClosure MarkSweep::mark_and_push_closure; | 56 MarkSweep::MarkAndPushClosure MarkSweep::mark_and_push_closure; |
58 MarkSweep::FollowKlassClosure MarkSweep::follow_klass_closure; | 57 CLDToOopClosure MarkSweep::follow_cld_closure(&mark_and_push_closure); |
59 MarkSweep::AdjustKlassClosure MarkSweep::adjust_klass_closure; | 58 CLDToOopClosure MarkSweep::adjust_cld_closure(&adjust_pointer_closure); |
60 | 59 |
61 void MarkSweep::MarkAndPushClosure::do_oop(oop* p) { mark_and_push(p); } | 60 void MarkSweep::MarkAndPushClosure::do_oop(oop* p) { mark_and_push(p); } |
62 void MarkSweep::MarkAndPushClosure::do_oop(narrowOop* p) { mark_and_push(p); } | 61 void MarkSweep::MarkAndPushClosure::do_oop(narrowOop* p) { mark_and_push(p); } |
63 | 62 |
64 void MarkSweep::FollowKlassClosure::do_klass(Klass* klass) { | |
65 klass->oops_do(&MarkSweep::mark_and_push_closure); | |
66 } | |
67 void MarkSweep::AdjustKlassClosure::do_klass(Klass* klass) { | |
68 klass->oops_do(&MarkSweep::adjust_pointer_closure); | |
69 } | |
70 | |
71 void MarkSweep::follow_class_loader(ClassLoaderData* cld) { | 63 void MarkSweep::follow_class_loader(ClassLoaderData* cld) { |
72 cld->oops_do(&MarkSweep::mark_and_push_closure, &MarkSweep::follow_klass_closure, true); | 64 MarkSweep::follow_cld_closure.do_cld(cld); |
73 } | 65 } |
74 | 66 |
75 void MarkSweep::follow_stack() { | 67 void MarkSweep::follow_stack() { |
76 do { | 68 do { |
77 while (!_marking_stack.is_empty()) { | 69 while (!_marking_stack.is_empty()) { |