hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.hpp
changeset 1374 4c24294029a9
parent 1 489c9b5090e2
child 2997 69cd0f7ac5d6
equal deleted inserted replaced
615:570062d730b2 1374:4c24294029a9
   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 {