equal
deleted
inserted
replaced
754 |
754 |
755 juint verf_live = 0; |
755 juint verf_live = 0; |
756 if (r->is_humongous()) { |
756 if (r->is_humongous()) { |
757 // For humongous objects, test if start region is marked live, and if so, |
757 // For humongous objects, test if start region is marked live, and if so, |
758 // all humongous regions in that chain have live data equal to their "used". |
758 // all humongous regions in that chain have live data equal to their "used". |
759 juint start_live = OrderAccess::load_acquire(&ld[r->humongous_start_region()->region_number()]); |
759 juint start_live = Atomic::load_acquire(&ld[r->humongous_start_region()->region_number()]); |
760 if (start_live > 0) { |
760 if (start_live > 0) { |
761 verf_live = (juint)(r->used() / HeapWordSize); |
761 verf_live = (juint)(r->used() / HeapWordSize); |
762 } |
762 } |
763 } else { |
763 } else { |
764 verf_live = OrderAccess::load_acquire(&ld[r->region_number()]); |
764 verf_live = Atomic::load_acquire(&ld[r->region_number()]); |
765 } |
765 } |
766 |
766 |
767 size_t reg_live = r->get_live_data_words(); |
767 size_t reg_live = r->get_live_data_words(); |
768 if (reg_live != verf_live) { |
768 if (reg_live != verf_live) { |
769 ResourceMark rm; |
769 ResourceMark rm; |