< prev index next >

src/share/vm/gc/shared/blockOffsetTable.cpp

Print this page

        

*** 541,585 **** // The excess of the offset from N_words indicates a power of Base // to go back by. size_t n_cards_back = entry_to_cards_back(offset); q -= (N_words * n_cards_back); assert(q >= _sp->bottom(), ! err_msg("q = " PTR_FORMAT " crossed below bottom = " PTR_FORMAT, ! p2i(q), p2i(_sp->bottom()))); assert(q < _sp->end(), ! err_msg("q = " PTR_FORMAT " crossed above end = " PTR_FORMAT, ! p2i(q), p2i(_sp->end()))); index -= n_cards_back; offset = _array->offset_array(index); } assert(offset < N_words, "offset too large"); index--; q -= offset; assert(q >= _sp->bottom(), ! err_msg("q = " PTR_FORMAT " crossed below bottom = " PTR_FORMAT, ! p2i(q), p2i(_sp->bottom()))); assert(q < _sp->end(), ! err_msg("q = " PTR_FORMAT " crossed above end = " PTR_FORMAT, ! p2i(q), p2i(_sp->end()))); HeapWord* n = q; while (n <= addr) { debug_only(HeapWord* last = q); // for debugging q = n; n += _sp->block_size(n); assert(n > q, ! err_msg("Looping at n = " PTR_FORMAT " with last = " PTR_FORMAT "," " while querying blk_start(" PTR_FORMAT ")" " on _sp = [" PTR_FORMAT "," PTR_FORMAT ")", ! p2i(n), p2i(last), p2i(addr), p2i(_sp->bottom()), p2i(_sp->end()))); } assert(q <= addr, ! err_msg("wrong order for current (" INTPTR_FORMAT ")" " <= arg (" INTPTR_FORMAT ")", ! p2i(q), p2i(addr))); assert(addr <= n, ! err_msg("wrong order for arg (" INTPTR_FORMAT ") <= next (" INTPTR_FORMAT ")", ! p2i(addr), p2i(n))); return q; } HeapWord* BlockOffsetArrayNonContigSpace::block_start_careful( const void* addr) const { --- 541,585 ---- // The excess of the offset from N_words indicates a power of Base // to go back by. size_t n_cards_back = entry_to_cards_back(offset); q -= (N_words * n_cards_back); assert(q >= _sp->bottom(), ! "q = " PTR_FORMAT " crossed below bottom = " PTR_FORMAT, ! p2i(q), p2i(_sp->bottom())); assert(q < _sp->end(), ! "q = " PTR_FORMAT " crossed above end = " PTR_FORMAT, ! p2i(q), p2i(_sp->end())); index -= n_cards_back; offset = _array->offset_array(index); } assert(offset < N_words, "offset too large"); index--; q -= offset; assert(q >= _sp->bottom(), ! "q = " PTR_FORMAT " crossed below bottom = " PTR_FORMAT, ! p2i(q), p2i(_sp->bottom())); assert(q < _sp->end(), ! "q = " PTR_FORMAT " crossed above end = " PTR_FORMAT, ! p2i(q), p2i(_sp->end())); HeapWord* n = q; while (n <= addr) { debug_only(HeapWord* last = q); // for debugging q = n; n += _sp->block_size(n); assert(n > q, ! "Looping at n = " PTR_FORMAT " with last = " PTR_FORMAT "," " while querying blk_start(" PTR_FORMAT ")" " on _sp = [" PTR_FORMAT "," PTR_FORMAT ")", ! p2i(n), p2i(last), p2i(addr), p2i(_sp->bottom()), p2i(_sp->end())); } assert(q <= addr, ! "wrong order for current (" INTPTR_FORMAT ")" " <= arg (" INTPTR_FORMAT ")", ! p2i(q), p2i(addr)); assert(addr <= n, ! "wrong order for arg (" INTPTR_FORMAT ") <= next (" INTPTR_FORMAT ")", ! p2i(addr), p2i(n)); return q; } HeapWord* BlockOffsetArrayNonContigSpace::block_start_careful( const void* addr) const {
< prev index next >