src/hotspot/share/gc/g1/g1HeapVerifier.cpp
changeset 50752 9d62da00bf15
parent 50565 69e82329ad01
child 50800 6da12aa23b88
equal deleted inserted replaced
50751:d9132bdf6c30 50752:9d62da00bf15
    35 #include "gc/g1/heapRegion.inline.hpp"
    35 #include "gc/g1/heapRegion.inline.hpp"
    36 #include "gc/g1/heapRegionRemSet.hpp"
    36 #include "gc/g1/heapRegionRemSet.hpp"
    37 #include "gc/g1/g1StringDedup.hpp"
    37 #include "gc/g1/g1StringDedup.hpp"
    38 #include "logging/log.hpp"
    38 #include "logging/log.hpp"
    39 #include "logging/logStream.hpp"
    39 #include "logging/logStream.hpp"
       
    40 #include "memory/iterator.inline.hpp"
    40 #include "memory/resourceArea.hpp"
    41 #include "memory/resourceArea.hpp"
    41 #include "oops/access.inline.hpp"
    42 #include "oops/access.inline.hpp"
    42 #include "oops/compressedOops.inline.hpp"
    43 #include "oops/compressedOops.inline.hpp"
    43 #include "oops/oop.inline.hpp"
    44 #include "oops/oop.inline.hpp"
    44 #include "runtime/handles.inline.hpp"
    45 #include "runtime/handles.inline.hpp"
    59     _vo(vo),
    60     _vo(vo),
    60     _failures(false) { }
    61     _failures(false) { }
    61 
    62 
    62   bool failures() { return _failures; }
    63   bool failures() { return _failures; }
    63 
    64 
    64   template <class T> void do_oop_nv(T* p) {
    65   template <class T> void do_oop_work(T* p) {
    65     T heap_oop = RawAccess<>::oop_load(p);
    66     T heap_oop = RawAccess<>::oop_load(p);
    66     if (!CompressedOops::is_null(heap_oop)) {
    67     if (!CompressedOops::is_null(heap_oop)) {
    67       oop obj = CompressedOops::decode_not_null(heap_oop);
    68       oop obj = CompressedOops::decode_not_null(heap_oop);
    68       if (_g1h->is_obj_dead_cond(obj, _vo)) {
    69       if (_g1h->is_obj_dead_cond(obj, _vo)) {
    69         Log(gc, verify) log;
    70         Log(gc, verify) log;
    74         _failures = true;
    75         _failures = true;
    75       }
    76       }
    76     }
    77     }
    77   }
    78   }
    78 
    79 
    79   void do_oop(oop* p)       { do_oop_nv(p); }
    80   void do_oop(oop* p)       { do_oop_work(p); }
    80   void do_oop(narrowOop* p) { do_oop_nv(p); }
    81   void do_oop(narrowOop* p) { do_oop_work(p); }
    81 };
    82 };
    82 
    83 
    83 class G1VerifyCodeRootOopClosure: public OopClosure {
    84 class G1VerifyCodeRootOopClosure: public OopClosure {
    84   G1CollectedHeap* _g1h;
    85   G1CollectedHeap* _g1h;
    85   OopClosure* _root_cl;
    86   OopClosure* _root_cl;