src/hotspot/share/gc/g1/g1FullGCOopClosures.inline.hpp
changeset 50752 9d62da00bf15
parent 50728 9375184cec98
child 52062 8dbf1a13af49
equal deleted inserted replaced
50751:d9132bdf6c30 50752:9d62da00bf15
    34 #include "oops/access.inline.hpp"
    34 #include "oops/access.inline.hpp"
    35 #include "oops/compressedOops.inline.hpp"
    35 #include "oops/compressedOops.inline.hpp"
    36 #include "oops/oop.inline.hpp"
    36 #include "oops/oop.inline.hpp"
    37 
    37 
    38 template <typename T>
    38 template <typename T>
    39 inline void G1MarkAndPushClosure::do_oop_nv(T* p) {
    39 inline void G1MarkAndPushClosure::do_oop_work(T* p) {
    40   _marker->mark_and_push(p);
    40   _marker->mark_and_push(p);
    41 }
    41 }
    42 
    42 
    43 inline bool G1MarkAndPushClosure::do_metadata_nv() {
    43 inline void G1MarkAndPushClosure::do_oop(oop* p) {
       
    44   do_oop_work(p);
       
    45 }
       
    46 
       
    47 inline void G1MarkAndPushClosure::do_oop(narrowOop* p) {
       
    48   do_oop_work(p);
       
    49 }
       
    50 
       
    51 inline bool G1MarkAndPushClosure::do_metadata() {
    44   return true;
    52   return true;
    45 }
    53 }
    46 
    54 
    47 inline void G1MarkAndPushClosure::do_klass_nv(Klass* k) {
    55 inline void G1MarkAndPushClosure::do_klass(Klass* k) {
    48   _marker->follow_klass(k);
    56   _marker->follow_klass(k);
    49 }
    57 }
    50 
    58 
    51 inline void G1MarkAndPushClosure::do_cld_nv(ClassLoaderData* cld) {
    59 inline void G1MarkAndPushClosure::do_cld(ClassLoaderData* cld) {
    52   _marker->follow_cld(cld);
    60   _marker->follow_cld(cld);
    53 }
    61 }
    54 
    62 
    55 template <class T> inline void G1AdjustClosure::adjust_pointer(T* p) {
    63 template <class T> inline void G1AdjustClosure::adjust_pointer(T* p) {
    56   T heap_oop = RawAccess<>::oop_load(p);
    64   T heap_oop = RawAccess<>::oop_load(p);
    79   // Forwarded, just update.
    87   // Forwarded, just update.
    80   assert(Universe::heap()->is_in_reserved(forwardee), "should be in object space");
    88   assert(Universe::heap()->is_in_reserved(forwardee), "should be in object space");
    81   RawAccess<IS_NOT_NULL>::oop_store(p, forwardee);
    89   RawAccess<IS_NOT_NULL>::oop_store(p, forwardee);
    82 }
    90 }
    83 
    91 
    84 inline void G1AdjustClosure::do_oop(oop* p)       { do_oop_nv(p); }
    92 inline void G1AdjustClosure::do_oop(oop* p)       { do_oop_work(p); }
    85 inline void G1AdjustClosure::do_oop(narrowOop* p) { do_oop_nv(p); }
    93 inline void G1AdjustClosure::do_oop(narrowOop* p) { do_oop_work(p); }
    86 
    94 
    87 inline bool G1IsAliveClosure::do_object_b(oop p) {
    95 inline bool G1IsAliveClosure::do_object_b(oop p) {
    88   return _bitmap->is_marked(p) || G1ArchiveAllocator::is_closed_archive_object(p);
    96   return _bitmap->is_marked(p) || G1ArchiveAllocator::is_closed_archive_object(p);
    89 }
    97 }
    90 
    98