1916 void operator()(G1TaskQueueEntry task_entry) const { |
1916 void operator()(G1TaskQueueEntry task_entry) const { |
1917 if (task_entry.is_array_slice()) { |
1917 if (task_entry.is_array_slice()) { |
1918 guarantee(_g1h->is_in_reserved(task_entry.slice()), "Slice " PTR_FORMAT " must be in heap.", p2i(task_entry.slice())); |
1918 guarantee(_g1h->is_in_reserved(task_entry.slice()), "Slice " PTR_FORMAT " must be in heap.", p2i(task_entry.slice())); |
1919 return; |
1919 return; |
1920 } |
1920 } |
1921 guarantee(task_entry.obj()->is_oop(), |
1921 guarantee(oopDesc::is_oop(task_entry.obj()), |
1922 "Non-oop " PTR_FORMAT ", phase: %s, info: %d", |
1922 "Non-oop " PTR_FORMAT ", phase: %s, info: %d", |
1923 p2i(task_entry.obj()), _phase, _info); |
1923 p2i(task_entry.obj()), _phase, _info); |
1924 guarantee(!_g1h->is_in_cset(task_entry.obj()), |
1924 guarantee(!_g1h->is_in_cset(task_entry.obj()), |
1925 "obj: " PTR_FORMAT " in CSet, phase: %s, info: %d", |
1925 "obj: " PTR_FORMAT " in CSet, phase: %s, info: %d", |
1926 p2i(task_entry.obj()), _phase, _info); |
1926 p2i(task_entry.obj()), _phase, _info); |
2311 for (size_t i = 0; i < G1CMMarkStack::EntriesPerChunk; ++i) { |
2311 for (size_t i = 0; i < G1CMMarkStack::EntriesPerChunk; ++i) { |
2312 G1TaskQueueEntry task_entry = buffer[i]; |
2312 G1TaskQueueEntry task_entry = buffer[i]; |
2313 if (task_entry.is_null()) { |
2313 if (task_entry.is_null()) { |
2314 break; |
2314 break; |
2315 } |
2315 } |
2316 assert(task_entry.is_array_slice() || task_entry.obj()->is_oop(), "Element " PTR_FORMAT " must be an array slice or oop", p2i(task_entry.obj())); |
2316 assert(task_entry.is_array_slice() || oopDesc::is_oop(task_entry.obj()), "Element " PTR_FORMAT " must be an array slice or oop", p2i(task_entry.obj())); |
2317 bool success = _task_queue->push(task_entry); |
2317 bool success = _task_queue->push(task_entry); |
2318 // We only call this when the local queue is empty or under a |
2318 // We only call this when the local queue is empty or under a |
2319 // given target limit. So, we do not expect this push to fail. |
2319 // given target limit. So, we do not expect this push to fail. |
2320 assert(success, "invariant"); |
2320 assert(success, "invariant"); |
2321 } |
2321 } |