< prev index next >

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

Print this page

        

*** 74,84 **** memset_with_concurrent_readers(&_offset_array[left], offset, num_cards); } // Variant of index_for that does not check the index for validity. inline size_t G1BlockOffsetTable::index_for_raw(const void* p) const { ! return pointer_delta((char*)p, _reserved.start(), sizeof(char)) >> LogN; } inline size_t G1BlockOffsetTable::index_for(const void* p) const { char* pc = (char*)p; assert(pc >= (char*)_reserved.start() && --- 74,84 ---- memset_with_concurrent_readers(&_offset_array[left], offset, num_cards); } // Variant of index_for that does not check the index for validity. inline size_t G1BlockOffsetTable::index_for_raw(const void* p) const { ! return pointer_delta((char*)p, _reserved.start(), sizeof(char)) >> BOTConstants::LogN; } inline size_t G1BlockOffsetTable::index_for(const void* p) const { char* pc = (char*)p; assert(pc >= (char*)_reserved.start() &&
*** 115,133 **** index = MIN2(index, max_index); } HeapWord* q = _bot->address_for_index(index); uint offset = _bot->offset_array(index); // Extend u_char to uint. ! while (offset >= N_words) { // The excess of the offset from N_words indicates a power of Base // to go back by. ! size_t n_cards_back = BlockOffsetArray::entry_to_cards_back(offset); ! q -= (N_words * n_cards_back); index -= n_cards_back; offset = _bot->offset_array(index); } ! assert(offset < N_words, "offset too large"); q -= offset; return q; } inline HeapWord* G1BlockOffsetTablePart::forward_to_block_containing_addr_const(HeapWord* q, HeapWord* n, --- 115,133 ---- index = MIN2(index, max_index); } HeapWord* q = _bot->address_for_index(index); uint offset = _bot->offset_array(index); // Extend u_char to uint. ! while (offset >= BOTConstants::N_words) { // The excess of the offset from N_words indicates a power of Base // to go back by. ! size_t n_cards_back = BOTConstants::entry_to_cards_back(offset); ! q -= (BOTConstants::N_words * n_cards_back); index -= n_cards_back; offset = _bot->offset_array(index); } ! assert(offset < BOTConstants::N_words, "offset too large"); q -= offset; return q; } inline HeapWord* G1BlockOffsetTablePart::forward_to_block_containing_addr_const(HeapWord* q, HeapWord* n,
< prev index next >