1146 new_obj->incr_age(); |
1146 new_obj->incr_age(); |
1147 par_scan_state->age_table()->add(new_obj, sz); |
1147 par_scan_state->age_table()->add(new_obj, sz); |
1148 } |
1148 } |
1149 assert(new_obj != NULL, "just checking"); |
1149 assert(new_obj != NULL, "just checking"); |
1150 |
1150 |
1151 #ifndef PRODUCT |
|
1152 // This code must come after the CAS test, or it will print incorrect |
1151 // This code must come after the CAS test, or it will print incorrect |
1153 // information. |
1152 // information. |
1154 if (TraceScavenge) { |
1153 if (TraceScavenge) { |
1155 gclog_or_tty->print_cr("{%s %s " PTR_FORMAT " -> " PTR_FORMAT " (%d)}", |
1154 gclog_or_tty->print_cr("{%s %s " PTR_FORMAT " -> " PTR_FORMAT " (%d)}", |
1156 is_in_reserved(new_obj) ? "copying" : "tenuring", |
1155 is_in_reserved(new_obj) ? "copying" : "tenuring", |
1157 new_obj->klass()->internal_name(), p2i(old), p2i(new_obj), new_obj->size()); |
1156 new_obj->klass()->internal_name(), p2i(old), p2i(new_obj), new_obj->size()); |
1158 } |
1157 } |
1159 #endif |
|
1160 |
1158 |
1161 if (forward_ptr == NULL) { |
1159 if (forward_ptr == NULL) { |
1162 oop obj_to_push = new_obj; |
1160 oop obj_to_push = new_obj; |
1163 if (par_scan_state->should_be_partially_scanned(obj_to_push, old)) { |
1161 if (par_scan_state->should_be_partially_scanned(obj_to_push, old)) { |
1164 // Length field used as index of next element to be scanned. |
1162 // Length field used as index of next element to be scanned. |