< prev index next >

src/share/vm/gc/g1/g1ConcurrentMark.inline.hpp

Print this page
rev 13015 : imported patch 8180755-remove-bitmap-inline-hpp-include


  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_GC_G1_G1CONCURRENTMARK_INLINE_HPP
  26 #define SHARE_VM_GC_G1_G1CONCURRENTMARK_INLINE_HPP
  27 
  28 #include "gc/g1/g1CollectedHeap.inline.hpp"
  29 #include "gc/g1/g1ConcurrentMark.hpp"
  30 #include "gc/g1/g1ConcurrentMarkObjArrayProcessor.inline.hpp"
  31 #include "gc/g1/suspendibleThreadSet.hpp"
  32 #include "gc/shared/taskqueue.inline.hpp"

  33 
  34 inline bool G1ConcurrentMark::par_mark(oop obj) {
  35   return _nextMarkBitMap->parMark((HeapWord*)obj);
  36 }
  37 
  38 inline bool G1CMBitMapRO::iterate(BitMapClosure* cl, MemRegion mr) {
  39   HeapWord* start_addr = MAX2(startWord(), mr.start());
  40   HeapWord* end_addr = MIN2(endWord(), mr.end());
  41 
  42   if (end_addr > start_addr) {
  43     // Right-open interval [start-offset, end-offset).
  44     BitMap::idx_t start_offset = heapWordToOffset(start_addr);
  45     BitMap::idx_t end_offset = heapWordToOffset(end_addr);
  46 
  47     start_offset = _bm.get_next_one_offset(start_offset, end_offset);
  48     while (start_offset < end_offset) {
  49       if (!cl->do_bit(start_offset)) {
  50         return false;
  51       }
  52       HeapWord* next_addr = MIN2(nextObject(offsetToHeapWord(start_offset)), end_addr);




  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_GC_G1_G1CONCURRENTMARK_INLINE_HPP
  26 #define SHARE_VM_GC_G1_G1CONCURRENTMARK_INLINE_HPP
  27 
  28 #include "gc/g1/g1CollectedHeap.inline.hpp"
  29 #include "gc/g1/g1ConcurrentMark.hpp"
  30 #include "gc/g1/g1ConcurrentMarkObjArrayProcessor.inline.hpp"
  31 #include "gc/g1/suspendibleThreadSet.hpp"
  32 #include "gc/shared/taskqueue.inline.hpp"
  33 #include "utilities/bitMap.inline.hpp"
  34 
  35 inline bool G1ConcurrentMark::par_mark(oop obj) {
  36   return _nextMarkBitMap->parMark((HeapWord*)obj);
  37 }
  38 
  39 inline bool G1CMBitMapRO::iterate(BitMapClosure* cl, MemRegion mr) {
  40   HeapWord* start_addr = MAX2(startWord(), mr.start());
  41   HeapWord* end_addr = MIN2(endWord(), mr.end());
  42 
  43   if (end_addr > start_addr) {
  44     // Right-open interval [start-offset, end-offset).
  45     BitMap::idx_t start_offset = heapWordToOffset(start_addr);
  46     BitMap::idx_t end_offset = heapWordToOffset(end_addr);
  47 
  48     start_offset = _bm.get_next_one_offset(start_offset, end_offset);
  49     while (start_offset < end_offset) {
  50       if (!cl->do_bit(start_offset)) {
  51         return false;
  52       }
  53       HeapWord* next_addr = MIN2(nextObject(offsetToHeapWord(start_offset)), end_addr);


< prev index next >