< prev index next >

src/share/vm/oops/oop.inline.hpp

Print this page

        

*** 24,40 **** #ifndef SHARE_VM_OOPS_OOP_INLINE_HPP #define SHARE_VM_OOPS_OOP_INLINE_HPP #include "gc_implementation/shared/ageTable.hpp" - #include "gc_implementation/shared/markSweep.inline.hpp" #include "gc_interface/collectedHeap.inline.hpp" #include "memory/barrierSet.inline.hpp" #include "memory/cardTableModRefBS.hpp" #include "memory/genCollectedHeap.hpp" #include "memory/generation.hpp" - #include "memory/specialized_oop_closures.hpp" #include "oops/arrayKlass.hpp" #include "oops/arrayOop.hpp" #include "oops/klass.inline.hpp" #include "oops/markOop.inline.hpp" #include "oops/oop.hpp" --- 24,38 ----
*** 590,604 **** if (!Universe::heap()->is_in_reserved(this)) return false; return mark()->is_unlocked(); } #endif // PRODUCT - inline void oopDesc::follow_contents(void) { - assert (is_gc_marked(), "should be marked"); - klass()->oop_follow_contents(this); - } - inline bool oopDesc::is_scavengable() const { return Universe::heap()->is_scavengable(this); } // Used by scavengers --- 588,597 ----
*** 704,720 **** } else { return slow_identity_hash(); } } ! inline int oopDesc::adjust_pointers() { debug_only(int check_size = size()); ! int s = klass()->oop_adjust_pointers(this); assert(s == check_size, "should be the same"); return s; } #define OOP_ITERATE_DEFN(OopClosureType, nv_suffix) \ \ inline int oopDesc::oop_iterate(OopClosureType* blk) { \ return klass()->oop_oop_iterate##nv_suffix(this, blk); \ } \ --- 697,741 ---- } else { return slow_identity_hash(); } } ! inline void oopDesc::ms_follow_contents() { ! klass()->oop_ms_follow_contents(this); ! } ! ! inline int oopDesc::ms_adjust_pointers() { debug_only(int check_size = size()); ! int s = klass()->oop_ms_adjust_pointers(this); assert(s == check_size, "should be the same"); return s; } + #if INCLUDE_ALL_GCS + inline void oopDesc::pc_follow_contents(ParCompactionManager* cm) { + klass()->oop_pc_follow_contents(this, cm); + } + + inline void oopDesc::pc_update_contents() { + Klass* k = klass(); + if (!k->oop_is_typeArray()) { + // It might contain oops beyond the header, so take the virtual call. + k->oop_pc_update_pointers(this); + } + // Else skip it. The TypeArrayKlass in the header never needs scavenging. + } + + inline void oopDesc::ps_push_contents(PSPromotionManager* pm) { + Klass* k = klass(); + if (!k->oop_is_typeArray()) { + // It might contain oops beyond the header, so take the virtual call. + k->oop_ps_push_contents(this, pm); + } + // Else skip it. The TypeArrayKlass in the header never needs scavenging. + } + #endif + #define OOP_ITERATE_DEFN(OopClosureType, nv_suffix) \ \ inline int oopDesc::oop_iterate(OopClosureType* blk) { \ return klass()->oop_oop_iterate##nv_suffix(this, blk); \ } \
*** 734,753 **** inline int oopDesc::oop_iterate_no_header(OopClosure* blk, MemRegion mr) { NoHeaderExtendedOopClosure cl(blk); return oop_iterate(&cl, mr); } - ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_ITERATE_DEFN) - ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_ITERATE_DEFN) - #if INCLUDE_ALL_GCS #define OOP_ITERATE_BACKWARDS_DEFN(OopClosureType, nv_suffix) \ \ inline int oopDesc::oop_iterate_backwards(OopClosureType* blk) { \ return klass()->oop_oop_iterate_backwards##nv_suffix(this, blk); \ } ! ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_ITERATE_BACKWARDS_DEFN) ! ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_ITERATE_BACKWARDS_DEFN) ! #endif // INCLUDE_ALL_GCS #endif // SHARE_VM_OOPS_OOP_INLINE_HPP --- 755,777 ---- inline int oopDesc::oop_iterate_no_header(OopClosure* blk, MemRegion mr) { NoHeaderExtendedOopClosure cl(blk); return oop_iterate(&cl, mr); } #if INCLUDE_ALL_GCS #define OOP_ITERATE_BACKWARDS_DEFN(OopClosureType, nv_suffix) \ \ inline int oopDesc::oop_iterate_backwards(OopClosureType* blk) { \ return klass()->oop_oop_iterate_backwards##nv_suffix(this, blk); \ } + #else + #define OOP_ITERATE_BACKWARDS_DEFN(OopClosureType, nv_suffix) + #endif + + #define ALL_OOPDESC_OOP_ITERATE(OopClosureType, nv_suffix) \ + OOP_ITERATE_DEFN(OopClosureType, nv_suffix) \ + OOP_ITERATE_BACKWARDS_DEFN(OopClosureType, nv_suffix) ! ALL_OOP_OOP_ITERATE_CLOSURES_1(ALL_OOPDESC_OOP_ITERATE) ! ALL_OOP_OOP_ITERATE_CLOSURES_2(ALL_OOPDESC_OOP_ITERATE) #endif // SHARE_VM_OOPS_OOP_INLINE_HPP
< prev index next >