< prev index next >

src/share/vm/gc_implementation/shared/markSweep.inline.hpp

Print this page

        

*** 56,65 **** --- 56,69 ---- inline void MarkSweep::follow_klass(Klass* klass) { oop op = klass->klass_holder(); MarkSweep::mark_and_push(&op); } + inline void MarkSweep::follow_object(oop obj) { + obj->follow_contents(); + } + template <class T> inline void MarkSweep::follow_root(T* p) { assert(!Universe::heap()->is_in_reserved(p), "roots shouldn't be things within the heap"); T heap_oop = oopDesc::load_heap_oop(p); if (!oopDesc::is_null(heap_oop)) {
*** 88,97 **** --- 92,105 ---- ObjArrayTask task(obj, index); assert(task.is_valid(), "bad ObjArrayTask"); _objarray_stack.push(task); } + inline int MarkSweep::adjust_pointers(oop obj) { + return obj->adjust_pointers(); + } + template <class T> inline void MarkSweep::adjust_pointer(T* p) { T heap_oop = oopDesc::load_heap_oop(p); if (!oopDesc::is_null(heap_oop)) { oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); oop new_obj = oop(obj->mark()->decode_pointer());
< prev index next >