equal
deleted
inserted
replaced
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); |