< prev index next >

src/hotspot/share/gc/serial/defNewGeneration.cpp

Print this page
*** 880,11 ***
    // of objs in young-gen so that no objs are marked (forwarded) when Full GC
    // starts. (The mark word is overloaded: `is_marked()` == `is_forwarded()`.)
    struct ResetForwardedMarkWord : ObjectClosure {
      void do_object(oop obj) override {
        if (obj->is_forwarded()) {
!         obj->init_mark();
        }
      }
    } cl;
    eden()->object_iterate(&cl);
    from()->object_iterate(&cl);
--- 880,11 ---
    // of objs in young-gen so that no objs are marked (forwarded) when Full GC
    // starts. (The mark word is overloaded: `is_marked()` == `is_forwarded()`.)
    struct ResetForwardedMarkWord : ObjectClosure {
      void do_object(oop obj) override {
        if (obj->is_forwarded()) {
!         obj->forward_safe_init_mark();
        }
      }
    } cl;
    eden()->object_iterate(&cl);
    from()->object_iterate(&cl);

*** 903,12 ***
    _promotion_failed_info.register_copy_failure(old->size());
    _preserved_marks_set.get()->push_if_necessary(old, old->mark());
  
    ContinuationGCSupport::transform_stack_chunk(old);
  
!   // forward to self
-   old->forward_to(old);
  
    _promo_failure_scan_stack.push(old);
  
    if (!_promo_failure_drain_in_progress) {
      // prevent recursion in copy_to_survivor_space()
--- 903,11 ---
    _promotion_failed_info.register_copy_failure(old->size());
    _preserved_marks_set.get()->push_if_necessary(old, old->mark());
  
    ContinuationGCSupport::transform_stack_chunk(old);
  
!   old->forward_to_self();
  
    _promo_failure_scan_stack.push(old);
  
    if (!_promo_failure_drain_in_progress) {
      // prevent recursion in copy_to_survivor_space()
< prev index next >