comparison src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.hpp @ 342:37f87013dfd8

6711316: Open source the Garbage-First garbage collector Summary: First mercurial integration of the code for the Garbage-First garbage collector. Reviewed-by: apetrusenko, iveresov, jmasa, sgoldman, tonyp, ysr
author ysr
date Thu, 05 Jun 2008 15:57:56 -0700
parents a61af66fc99e
children 353ba4575581
comparison
equal deleted inserted replaced
189:0b27f3512f9e 342:37f87013dfd8
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 {