hotspot/src/share/vm/gc_implementation/g1/concurrentMark.inline.hpp
changeset 15949 a55dea304e8c
parent 14073 6012178c0c19
child 20309 7445302daff6
equal deleted inserted replaced
15862:1d605801c9a6 15949:a55dea304e8c
     1 /*
     1 /*
     2  * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
   250     BitMap::idx_t start_offset = heapWordToOffset(start_addr);
   250     BitMap::idx_t start_offset = heapWordToOffset(start_addr);
   251     BitMap::idx_t end_offset = heapWordToOffset(end_addr);
   251     BitMap::idx_t end_offset = heapWordToOffset(end_addr);
   252 
   252 
   253     start_offset = _bm.get_next_one_offset(start_offset, end_offset);
   253     start_offset = _bm.get_next_one_offset(start_offset, end_offset);
   254     while (start_offset < end_offset) {
   254     while (start_offset < end_offset) {
   255       HeapWord* obj_addr = offsetToHeapWord(start_offset);
       
   256       oop obj = (oop) obj_addr;
       
   257       if (!cl->do_bit(start_offset)) {
   255       if (!cl->do_bit(start_offset)) {
   258         return false;
   256         return false;
   259       }
   257       }
   260       HeapWord* next_addr = MIN2(obj_addr + obj->size(), end_addr);
   258       HeapWord* next_addr = MIN2(nextObject(offsetToHeapWord(start_offset)), end_addr);
   261       BitMap::idx_t next_offset = heapWordToOffset(next_addr);
   259       BitMap::idx_t next_offset = heapWordToOffset(next_addr);
   262       start_offset = _bm.get_next_one_offset(next_offset, end_offset);
   260       start_offset = _bm.get_next_one_offset(next_offset, end_offset);
   263     }
   261     }
   264   }
   262   }
   265   return true;
   263   return true;