280 } |
280 } |
281 if (old_mark->has_displaced_mark_helper()) { |
281 if (old_mark->has_displaced_mark_helper()) { |
282 // In this case, we have to install the mark word first, |
282 // In this case, we have to install the mark word first, |
283 // otherwise obj looks to be forwarded (the old mark word, |
283 // otherwise obj looks to be forwarded (the old mark word, |
284 // which contains the forward pointer, was copied) |
284 // which contains the forward pointer, was copied) |
285 obj->set_mark(old_mark); |
285 obj->set_mark_raw(old_mark); |
286 markOop new_mark = old_mark->displaced_mark_helper()->set_age(age); |
286 markOop new_mark = old_mark->displaced_mark_helper()->set_age(age); |
287 old_mark->set_displaced_mark_helper(new_mark); |
287 old_mark->set_displaced_mark_helper(new_mark); |
288 } else { |
288 } else { |
289 obj->set_mark(old_mark->set_age(age)); |
289 obj->set_mark_raw(old_mark->set_age(age)); |
290 } |
290 } |
291 _age_table.add(age, word_sz); |
291 _age_table.add(age, word_sz); |
292 } else { |
292 } else { |
293 obj->set_mark(old_mark); |
293 obj->set_mark_raw(old_mark); |
294 } |
294 } |
295 |
295 |
296 if (G1StringDedup::is_enabled()) { |
296 if (G1StringDedup::is_enabled()) { |
297 const bool is_from_young = state.is_young(); |
297 const bool is_from_young = state.is_young(); |
298 const bool is_to_young = dest_state.is_young(); |
298 const bool is_to_young = dest_state.is_young(); |