40 p2i(obj), p2i(p));
41 }
42
43 ZVerifyHeapOopClosure::ZVerifyHeapOopClosure(oop base)
44 : _base(base) {}
45
46 void ZVerifyHeapOopClosure::do_oop(oop* p) {
47 guarantee(ZHeap::heap()->is_in((uintptr_t)p), "oop* " PTR_FORMAT " not in heap", p2i(p));
48
49 const oop obj = HeapAccess<ON_UNKNOWN_OOP_REF>::oop_load_at(_base, _base->field_offset(p));
50 z_verify_loaded_object(p, obj);
51 }
52
53 void ZVerifyHeapOopClosure::do_oop(narrowOop* p) {
54 ShouldNotReachHere();
55 }
56
57 void ZVerifyRootOopClosure::do_oop(oop* p) {
58 guarantee(!ZHeap::heap()->is_in((uintptr_t)p), "oop* " PTR_FORMAT " in heap", p2i(p));
59
60 const oop obj = RootAccess<>::oop_load(p);
61 z_verify_loaded_object(p, obj);
62 }
63
64 void ZVerifyRootOopClosure::do_oop(narrowOop* p) {
65 ShouldNotReachHere();
66 }
67
68 void ZVerifyObjectClosure::do_object(oop o) {
69 ZVerifyHeapOopClosure cl(o);
70 o->oop_iterate(&cl);
71 }
72
73 // Generate Z specialized oop_oop_iterate functions.
74 SPECIALIZED_OOP_OOP_ITERATE_CLOSURES_Z(ALL_KLASS_OOP_OOP_ITERATE_DEFN)
|
40 p2i(obj), p2i(p));
41 }
42
43 ZVerifyHeapOopClosure::ZVerifyHeapOopClosure(oop base)
44 : _base(base) {}
45
46 void ZVerifyHeapOopClosure::do_oop(oop* p) {
47 guarantee(ZHeap::heap()->is_in((uintptr_t)p), "oop* " PTR_FORMAT " not in heap", p2i(p));
48
49 const oop obj = HeapAccess<ON_UNKNOWN_OOP_REF>::oop_load_at(_base, _base->field_offset(p));
50 z_verify_loaded_object(p, obj);
51 }
52
53 void ZVerifyHeapOopClosure::do_oop(narrowOop* p) {
54 ShouldNotReachHere();
55 }
56
57 void ZVerifyRootOopClosure::do_oop(oop* p) {
58 guarantee(!ZHeap::heap()->is_in((uintptr_t)p), "oop* " PTR_FORMAT " in heap", p2i(p));
59
60 const oop obj = NativeAccess<>::oop_load(p);
61 z_verify_loaded_object(p, obj);
62 }
63
64 void ZVerifyRootOopClosure::do_oop(narrowOop* p) {
65 ShouldNotReachHere();
66 }
67
68 void ZVerifyObjectClosure::do_object(oop o) {
69 ZVerifyHeapOopClosure cl(o);
70 o->oop_iterate(&cl);
71 }
72
73 // Generate Z specialized oop_oop_iterate functions.
74 SPECIALIZED_OOP_OOP_ITERATE_CLOSURES_Z(ALL_KLASS_OOP_OOP_ITERATE_DEFN)
|