< 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 >