< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp

Print this page
rev 53257 : Cherry-pick: 8213199: GC abstraction for Assembler::needs_explicit_null_check() plus Shenandoah parts


2772   return _liveness_cache[worker_id];
2773 }
2774 
2775 void ShenandoahHeap::flush_liveness_cache(uint worker_id) {
2776   assert(worker_id < _max_workers, "sanity");
2777   jushort* ld = _liveness_cache[worker_id];
2778   for (uint i = 0; i < num_regions(); i++) {
2779     ShenandoahHeapRegion* r = get_region(i);
2780     jushort live = ld[i];
2781     if (live > 0) {
2782       r->increase_live_data_gc_words(live);
2783       ld[i] = 0;
2784     }
2785   }
2786 }
2787 
2788 size_t ShenandoahHeap::obj_size(oop obj) const {
2789   return CollectedHeap::obj_size(obj) + ShenandoahBrooksPointer::word_size();
2790 }
2791 




2792 BoolObjectClosure* ShenandoahIsAliveSelector::is_alive_closure() {
2793   return ShenandoahHeap::heap()->has_forwarded_objects() ? reinterpret_cast<BoolObjectClosure*>(&_fwd_alive_cl)
2794                                                          : reinterpret_cast<BoolObjectClosure*>(&_alive_cl);
2795 }


2772   return _liveness_cache[worker_id];
2773 }
2774 
2775 void ShenandoahHeap::flush_liveness_cache(uint worker_id) {
2776   assert(worker_id < _max_workers, "sanity");
2777   jushort* ld = _liveness_cache[worker_id];
2778   for (uint i = 0; i < num_regions(); i++) {
2779     ShenandoahHeapRegion* r = get_region(i);
2780     jushort live = ld[i];
2781     if (live > 0) {
2782       r->increase_live_data_gc_words(live);
2783       ld[i] = 0;
2784     }
2785   }
2786 }
2787 
2788 size_t ShenandoahHeap::obj_size(oop obj) const {
2789   return CollectedHeap::obj_size(obj) + ShenandoahBrooksPointer::word_size();
2790 }
2791 
2792 ptrdiff_t ShenandoahHeap::cell_header_size() const {
2793   return ShenandoahBrooksPointer::byte_size();
2794 }
2795 
2796 BoolObjectClosure* ShenandoahIsAliveSelector::is_alive_closure() {
2797   return ShenandoahHeap::heap()->has_forwarded_objects() ? reinterpret_cast<BoolObjectClosure*>(&_fwd_alive_cl)
2798                                                          : reinterpret_cast<BoolObjectClosure*>(&_alive_cl);
2799 }
< prev index next >