src/hotspot/share/gc/cms/parNewGeneration.cpp
changeset 58083 9046db64ca39
parent 58041 d8902e9c307c
child 58679 9c3209ff7550
child 58980 47c20fc6a517
equal deleted inserted replaced
58081:8b08eaf9a0eb 58083:9046db64ca39
  1243 #ifndef PRODUCT
  1243 #ifndef PRODUCT
  1244     Atomic::inc(&_num_par_pushes);
  1244     Atomic::inc(&_num_par_pushes);
  1245     assert(_num_par_pushes > 0, "Tautology");
  1245     assert(_num_par_pushes > 0, "Tautology");
  1246 #endif
  1246 #endif
  1247     if (from_space_obj->forwardee() == from_space_obj) {
  1247     if (from_space_obj->forwardee() == from_space_obj) {
  1248       oopDesc* listhead = NEW_C_HEAP_ARRAY(oopDesc, 1, mtGC);
  1248       oopDesc* listhead = NEW_C_HEAP_OBJ(oopDesc, mtGC);
  1249       listhead->forward_to(from_space_obj);
  1249       listhead->forward_to(from_space_obj);
  1250       from_space_obj = listhead;
  1250       from_space_obj = listhead;
  1251     }
  1251     }
  1252     oop observed_overflow_list = _overflow_list;
  1252     oop observed_overflow_list = _overflow_list;
  1253     oop cur_overflow_list;
  1253     oop cur_overflow_list;
  1399     // space, cur, is not in the Java heap, but rather in the C-heap and should be freed.
  1399     // space, cur, is not in the Java heap, but rather in the C-heap and should be freed.
  1400     if (!is_in_reserved(cur)) {
  1400     if (!is_in_reserved(cur)) {
  1401       // This can become a scaling bottleneck when there is work queue overflow coincident
  1401       // This can become a scaling bottleneck when there is work queue overflow coincident
  1402       // with promotion failure.
  1402       // with promotion failure.
  1403       oopDesc* f = cur;
  1403       oopDesc* f = cur;
  1404       FREE_C_HEAP_ARRAY(oopDesc, f);
  1404       FREE_C_HEAP_OBJ(f);
  1405     } else if (par_scan_state->should_be_partially_scanned(obj_to_push, cur)) {
  1405     } else if (par_scan_state->should_be_partially_scanned(obj_to_push, cur)) {
  1406       assert(arrayOop(cur)->length() == 0, "entire array remaining to be scanned");
  1406       assert(arrayOop(cur)->length() == 0, "entire array remaining to be scanned");
  1407       obj_to_push = cur;
  1407       obj_to_push = cur;
  1408     }
  1408     }
  1409     bool ok = work_q->push(obj_to_push);
  1409     bool ok = work_q->push(obj_to_push);