< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.inline.hpp

Print this page
@@ -162,11 +162,14 @@
        }
  
        // Update region liveness data
        ShenandoahHeapRegion* region = heap->heap_region_containing(invisible_root);
        if (region->is_regular_or_regular_pinned()) {
-         assert(!ShenandoahHeapRegion::requires_humongous(invisible_root_word_size), "Must not be humongous.");
+         // The invisible root is a freshly allocated, not-yet-hashed mutator object
+         // array (see ShenandoahObjArrayAllocator), so it is classified for the
+         // humongous path with hash-expansion headroom, just like its allocation.
+         assert(!ShenandoahHeapRegion::requires_humongous(invisible_root_word_size, true /* may_expand_for_hash */), "Must not be humongous.");
          region->increase_live_data_alloc_words(invisible_root_word_size);
        } else if (region->is_humongous_start()) {
          DEBUG_ONLY(size_t total_live_words = 0;)
          do {
            size_t current = region->get_live_data_words();
< prev index next >