hotspot/src/share/vm/gc/g1/g1EvacFailure.cpp
changeset 37988 bf4018edea5e
parent 37413 2f71679d06dd
child 38081 a3bcb7197d45
equal deleted inserted replaced
37987:7b0667c9e794 37988:bf4018edea5e
   225       if (hr->evacuation_failed()) {
   225       if (hr->evacuation_failed()) {
   226         hr->note_self_forwarding_removal_start(during_initial_mark,
   226         hr->note_self_forwarding_removal_start(during_initial_mark,
   227                                                during_conc_mark);
   227                                                during_conc_mark);
   228         _g1h->verifier()->check_bitmaps("Self-Forwarding Ptr Removal", hr);
   228         _g1h->verifier()->check_bitmaps("Self-Forwarding Ptr Removal", hr);
   229 
   229 
   230         // In the common case (i.e. when there is no evacuation
       
   231         // failure) we make sure that the following is done when
       
   232         // the region is freed so that it is "ready-to-go" when it's
       
   233         // re-allocated. However, when evacuation failure happens, a
       
   234         // region will remain in the heap and might ultimately be added
       
   235         // to a CSet in the future. So we have to be careful here and
       
   236         // make sure the region's RSet is ready for parallel iteration
       
   237         // whenever this might be required in the future.
       
   238         hr->rem_set()->reset_for_par_iteration();
       
   239         hr->reset_bot();
   230         hr->reset_bot();
   240 
   231 
   241         size_t live_bytes = remove_self_forward_ptr_by_walking_hr(hr, during_initial_mark);
   232         size_t live_bytes = remove_self_forward_ptr_by_walking_hr(hr, during_initial_mark);
   242 
   233 
   243         hr->rem_set()->clean_strong_code_roots(hr);
   234         hr->rem_set()->clean_strong_code_roots(hr);