src/share/vm/gc_implementation/g1/g1ParScanThreadState.inline.hpp

Print this page
rev 6796 : [mq]: templateOopIterate

*** 112,126 **** _scanner.set_region(_g1h->heap_region_containing_raw(to_obj)); // Process indexes [start,end). It will also process the header // along with the first chunk (i.e., the chunk with start == 0). // Note that at this point the length field of to_obj_array is not // correct given that we are using it to keep track of the next ! // start index. oop_iterate_range() (thankfully!) ignores the length // field and only relies on the start / end parameters. It does // however return the size of the object which will be incorrect. So // we have to ignore it even if we wanted to use it. ! to_obj_array->oop_iterate_range(&_scanner, start, end); } template <class T> inline void G1ParScanThreadState::deal_with_reference(T* ref_to_scan) { if (!has_partial_array_mask(ref_to_scan)) { // Note: we can use "raw" versions of "region_containing" because --- 112,126 ---- _scanner.set_region(_g1h->heap_region_containing_raw(to_obj)); // Process indexes [start,end). It will also process the header // along with the first chunk (i.e., the chunk with start == 0). // Note that at this point the length field of to_obj_array is not // correct given that we are using it to keep track of the next ! // start index. oop_iterate_range_t() (thankfully!) ignores the length // field and only relies on the start / end parameters. It does // however return the size of the object which will be incorrect. So // we have to ignore it even if we wanted to use it. ! to_obj_array->oop_iterate_range_t<true>(&_scanner, start, end); } template <class T> inline void G1ParScanThreadState::deal_with_reference(T* ref_to_scan) { if (!has_partial_array_mask(ref_to_scan)) { // Note: we can use "raw" versions of "region_containing" because