22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "gc/g1/concurrentMarkThread.hpp"
27 #include "gc/g1/g1Allocator.inline.hpp"
28 #include "gc/g1/g1CollectedHeap.hpp"
29 #include "gc/g1/g1CollectedHeap.inline.hpp"
30 #include "gc/g1/g1HeapVerifier.hpp"
31 #include "gc/g1/g1Policy.hpp"
32 #include "gc/g1/g1RemSet.hpp"
33 #include "gc/g1/g1RootProcessor.hpp"
34 #include "gc/g1/heapRegion.hpp"
35 #include "gc/g1/heapRegion.inline.hpp"
36 #include "gc/g1/heapRegionRemSet.hpp"
37 #include "gc/g1/g1StringDedup.hpp"
38 #include "logging/log.hpp"
39 #include "logging/logStream.hpp"
40 #include "memory/resourceArea.hpp"
41 #include "oops/oop.inline.hpp"
42
43 class VerifyRootsClosure: public OopClosure {
44 private:
45 G1CollectedHeap* _g1h;
46 VerifyOption _vo;
47 bool _failures;
48 public:
49 // _vo == UsePrevMarking -> use "prev" marking information,
50 // _vo == UseNextMarking -> use "next" marking information,
51 // _vo == UseFullMarking -> use "next" marking bitmap but no TAMS
52 VerifyRootsClosure(VerifyOption vo) :
53 _g1h(G1CollectedHeap::heap()),
54 _vo(vo),
55 _failures(false) { }
56
57 bool failures() { return _failures; }
58
59 template <class T> void do_oop_nv(T* p) {
60 T heap_oop = oopDesc::load_heap_oop(p);
61 if (!oopDesc::is_null(heap_oop)) {
|
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "gc/g1/concurrentMarkThread.hpp"
27 #include "gc/g1/g1Allocator.inline.hpp"
28 #include "gc/g1/g1CollectedHeap.hpp"
29 #include "gc/g1/g1CollectedHeap.inline.hpp"
30 #include "gc/g1/g1HeapVerifier.hpp"
31 #include "gc/g1/g1Policy.hpp"
32 #include "gc/g1/g1RemSet.hpp"
33 #include "gc/g1/g1RootProcessor.hpp"
34 #include "gc/g1/heapRegion.hpp"
35 #include "gc/g1/heapRegion.inline.hpp"
36 #include "gc/g1/heapRegionRemSet.hpp"
37 #include "gc/g1/g1StringDedup.hpp"
38 #include "logging/log.hpp"
39 #include "logging/logStream.hpp"
40 #include "memory/resourceArea.hpp"
41 #include "oops/oop.inline.hpp"
42 #include "runtime/handles.inline.hpp"
43
44 class VerifyRootsClosure: public OopClosure {
45 private:
46 G1CollectedHeap* _g1h;
47 VerifyOption _vo;
48 bool _failures;
49 public:
50 // _vo == UsePrevMarking -> use "prev" marking information,
51 // _vo == UseNextMarking -> use "next" marking information,
52 // _vo == UseFullMarking -> use "next" marking bitmap but no TAMS
53 VerifyRootsClosure(VerifyOption vo) :
54 _g1h(G1CollectedHeap::heap()),
55 _vo(vo),
56 _failures(false) { }
57
58 bool failures() { return _failures; }
59
60 template <class T> void do_oop_nv(T* p) {
61 T heap_oop = oopDesc::load_heap_oop(p);
62 if (!oopDesc::is_null(heap_oop)) {
|