--- old/src/share/vm/gc/g1/concurrentMark.hpp 2016-01-13 23:35:03.759118000 +0100 +++ new/src/share/vm/gc/g1/concurrentMark.hpp 2016-01-13 23:35:03.593091000 +0100 @@ -96,12 +96,7 @@ } // The argument addr should be the start address of a valid object - HeapWord* nextObject(HeapWord* addr) { - oop obj = (oop) addr; - HeapWord* res = addr + obj->size(); - assert(offsetToHeapWord(heapWordToOffset(res)) == res, "sanity"); - return res; - } + inline HeapWord* nextObject(HeapWord* addr); void print_on_error(outputStream* st, const char* prefix) const; @@ -627,14 +622,7 @@ // If marking is not in progress, it's a no-op. void verify_no_cset_oops() PRODUCT_RETURN; - bool isPrevMarked(oop p) const { - assert(p != NULL && p->is_oop(), "expected an oop"); - HeapWord* addr = (HeapWord*)p; - assert(addr >= _prevMarkBitMap->startWord() || - addr < _prevMarkBitMap->endWord(), "in a region"); - - return _prevMarkBitMap->isMarked(addr); - } + inline bool isPrevMarked(oop p) const; inline bool do_yield_check(uint worker_i = 0);