equal
deleted
inserted
replaced
34 void G1CodeBlobClosure::HeapRegionGatheringOopClosure::do_oop_work(T* p) { |
34 void G1CodeBlobClosure::HeapRegionGatheringOopClosure::do_oop_work(T* p) { |
35 _work->do_oop(p); |
35 _work->do_oop(p); |
36 T oop_or_narrowoop = oopDesc::load_heap_oop(p); |
36 T oop_or_narrowoop = oopDesc::load_heap_oop(p); |
37 if (!oopDesc::is_null(oop_or_narrowoop)) { |
37 if (!oopDesc::is_null(oop_or_narrowoop)) { |
38 oop o = oopDesc::decode_heap_oop_not_null(oop_or_narrowoop); |
38 oop o = oopDesc::decode_heap_oop_not_null(oop_or_narrowoop); |
39 HeapRegion* hr = _g1h->heap_region_containing_raw(o); |
39 HeapRegion* hr = _g1h->heap_region_containing(o); |
40 assert(!_g1h->obj_in_cs(o) || hr->rem_set()->strong_code_roots_list_contains(_nm), "if o still in collection set then evacuation failed and nm must already be in the remset"); |
40 assert(!_g1h->obj_in_cs(o) || hr->rem_set()->strong_code_roots_list_contains(_nm), "if o still in collection set then evacuation failed and nm must already be in the remset"); |
41 hr->add_strong_code_root(_nm); |
41 hr->add_strong_code_root(_nm); |
42 } |
42 } |
43 } |
43 } |
44 |
44 |