inline void oopDesc::oop_iterate_header(OopClosure* blk, MemRegion mr) { if (UseCompressedOops) { if (mr.contains(compressed_klass_addr())) { blk->do_oop(compressed_klass_addr()); } } else { if (mr.contains(klass_addr())) blk->do_oop(klass_addr()); } }
inline void oopDesc::adjust_header() { if (UseCompressedOops) { MarkSweep::adjust_pointer(compressed_klass_addr()); } else { MarkSweep::adjust_pointer(klass_addr()); } }
inline void oopDesc::oop_iterate_header(OopClosure* blk) { if (UseCompressedOops) { blk->do_oop(compressed_klass_addr()); } else { blk->do_oop(klass_addr()); } }
inline void oopDesc::follow_header() { if (UseCompressedOops) { MarkSweep::mark_and_push(compressed_klass_addr()); } else { MarkSweep::mark_and_push(klass_addr()); } }
void oopDesc::set_klass(Klass* k) { // since klasses are promoted no store check is needed assert(Universe::is_bootstrapping() || k != NULL, "must be a real Klass*"); assert(Universe::is_bootstrapping() || k->is_klass(), "not a Klass*"); if (UseCompressedClassPointers) { *compressed_klass_addr() = Klass::encode_klass_not_null(k); } else { *klass_addr() = k; } }
inline void oopDesc::set_klass(klassOop k) { // since klasses are promoted no store check is needed assert(Universe::is_bootstrapping() || k != NULL, "must be a real klassOop"); assert(Universe::is_bootstrapping() || k->is_klass(), "not a klassOop"); if (UseCompressedOops) { oop_store_without_check(compressed_klass_addr(), (oop)k); } else { oop_store_without_check(klass_addr(), (oop) k); } }