src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp
changeset 54766 1321f8cf9de5
parent 54758 5e5535d25467
child 54786 ebf733a324d4
equal deleted inserted replaced
54765:cc6053cbd811 54766:1321f8cf9de5
    33 #include "gc/shenandoah/shenandoahClosures.inline.hpp"
    33 #include "gc/shenandoah/shenandoahClosures.inline.hpp"
    34 #include "gc/shenandoah/shenandoahCodeRoots.hpp"
    34 #include "gc/shenandoah/shenandoahCodeRoots.hpp"
    35 #include "gc/shenandoah/shenandoahCollectionSet.hpp"
    35 #include "gc/shenandoah/shenandoahCollectionSet.hpp"
    36 #include "gc/shenandoah/shenandoahCollectorPolicy.hpp"
    36 #include "gc/shenandoah/shenandoahCollectorPolicy.hpp"
    37 #include "gc/shenandoah/shenandoahFreeSet.hpp"
    37 #include "gc/shenandoah/shenandoahFreeSet.hpp"
       
    38 #include "gc/shenandoah/shenandoahForwarding.hpp"
    38 #include "gc/shenandoah/shenandoahPhaseTimings.hpp"
    39 #include "gc/shenandoah/shenandoahPhaseTimings.hpp"
    39 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
    40 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
    40 #include "gc/shenandoah/shenandoahHeapRegionSet.inline.hpp"
    41 #include "gc/shenandoah/shenandoahHeapRegionSet.inline.hpp"
    41 #include "gc/shenandoah/shenandoahHeuristics.hpp"
    42 #include "gc/shenandoah/shenandoahHeuristics.hpp"
    42 #include "gc/shenandoah/shenandoahMarkingContext.inline.hpp"
    43 #include "gc/shenandoah/shenandoahMarkingContext.inline.hpp"
   638         bool not_allocated = ctx->top_at_mark_start(r) == r->top();
   639         bool not_allocated = ctx->top_at_mark_start(r) == r->top();
   639 
   640 
   640         bool candidate = traversal_regions->is_in(r) && !r->has_live() && not_allocated;
   641         bool candidate = traversal_regions->is_in(r) && !r->has_live() && not_allocated;
   641         if (r->is_humongous_start() && candidate) {
   642         if (r->is_humongous_start() && candidate) {
   642           // Trash humongous.
   643           // Trash humongous.
   643           HeapWord* humongous_obj = r->bottom() + ShenandoahBrooksPointer::word_size();
   644           HeapWord* humongous_obj = r->bottom() + ShenandoahForwarding::word_size();
   644           assert(!ctx->is_marked(oop(humongous_obj)), "must not be marked");
   645           assert(!ctx->is_marked(oop(humongous_obj)), "must not be marked");
   645           r->make_trash_immediate();
   646           r->make_trash_immediate();
   646           while (i + 1 < num_regions && _heap->get_region(i + 1)->is_humongous_continuation()) {
   647           while (i + 1 < num_regions && _heap->get_region(i + 1)->is_humongous_continuation()) {
   647             i++;
   648             i++;
   648             r = _heap->get_region(i);
   649             r = _heap->get_region(i);