equal
deleted
inserted
replaced
190 size_t _cas_by_another; |
190 size_t _cas_by_another; |
191 #endif // #ifndef PRODUCT |
191 #endif // #ifndef PRODUCT |
192 }; |
192 }; |
193 |
193 |
194 inline ParMarkBitMap::ParMarkBitMap(): |
194 inline ParMarkBitMap::ParMarkBitMap(): |
195 _beg_bits(NULL, 0), |
195 _beg_bits(), |
196 _end_bits(NULL, 0) |
196 _end_bits() |
197 { |
197 { |
198 _region_start = 0; |
198 _region_start = 0; |
199 _virtual_space = 0; |
199 _virtual_space = 0; |
200 } |
200 } |
201 |
201 |
202 inline ParMarkBitMap::ParMarkBitMap(MemRegion covered_region): |
202 inline ParMarkBitMap::ParMarkBitMap(MemRegion covered_region): |
203 _beg_bits(NULL, 0), |
203 _beg_bits(), |
204 _end_bits(NULL, 0) |
204 _end_bits() |
205 { |
205 { |
206 initialize(covered_region); |
206 initialize(covered_region); |
207 } |
207 } |
208 |
208 |
209 inline void ParMarkBitMap::clear_range(idx_t beg, idx_t end) |
209 inline void ParMarkBitMap::clear_range(idx_t beg, idx_t end) |
323 return pointer_delta(end_addr, beg_addr) + obj_granularity(); |
323 return pointer_delta(end_addr, beg_addr) + obj_granularity(); |
324 } |
324 } |
325 |
325 |
326 inline size_t ParMarkBitMap::obj_size(idx_t beg_bit) const |
326 inline size_t ParMarkBitMap::obj_size(idx_t beg_bit) const |
327 { |
327 { |
328 const idx_t end_bit = _end_bits.find_next_one_bit(beg_bit, size()); |
328 const idx_t end_bit = _end_bits.get_next_one_offset_inline(beg_bit, size()); |
329 assert(is_marked(beg_bit), "obj not marked"); |
329 assert(is_marked(beg_bit), "obj not marked"); |
330 assert(end_bit < size(), "end bit missing"); |
330 assert(end_bit < size(), "end bit missing"); |
331 return obj_size(beg_bit, end_bit); |
331 return obj_size(beg_bit, end_bit); |
332 } |
332 } |
333 |
333 |
382 } |
382 } |
383 |
383 |
384 inline ParMarkBitMap::idx_t |
384 inline ParMarkBitMap::idx_t |
385 ParMarkBitMap::find_obj_beg(idx_t beg, idx_t end) const |
385 ParMarkBitMap::find_obj_beg(idx_t beg, idx_t end) const |
386 { |
386 { |
387 return _beg_bits.find_next_one_bit(beg, end); |
387 return _beg_bits.get_next_one_offset_inline_aligned_right(beg, end); |
388 } |
388 } |
389 |
389 |
390 inline ParMarkBitMap::idx_t |
390 inline ParMarkBitMap::idx_t |
391 ParMarkBitMap::find_obj_end(idx_t beg, idx_t end) const |
391 ParMarkBitMap::find_obj_end(idx_t beg, idx_t end) const |
392 { |
392 { |
393 return _end_bits.find_next_one_bit(beg, end); |
393 return _end_bits.get_next_one_offset_inline_aligned_right(beg, end); |
394 } |
394 } |
395 |
395 |
396 inline HeapWord* |
396 inline HeapWord* |
397 ParMarkBitMap::find_obj_beg(HeapWord* beg, HeapWord* end) const |
397 ParMarkBitMap::find_obj_beg(HeapWord* beg, HeapWord* end) const |
398 { |
398 { |