< prev index next > src/hotspot/share/oops/instanceStackChunkKlass.inline.hpp
Print this page
if (Devirtualizer::do_metadata(closure)) {
Devirtualizer::do_klass(closure, this);
}
oop_oop_iterate_stack<T>(chunk, closure);
oop_oop_iterate_header<T>(chunk, closure);
+ oop_oop_iterate_lockstack<T>(chunk, closure, chunk->range());
}
template <typename T, class OopClosureType>
void InstanceStackChunkKlass::oop_oop_iterate_reverse(oop obj, OopClosureType* closure) {
assert(!Devirtualizer::do_metadata(closure), "Code to handle metadata is not implemented");
stackChunkOop chunk = stackChunkOopDesc::cast(obj);
oop_oop_iterate_stack<T>(chunk, closure);
oop_oop_iterate_header<T>(chunk, closure);
+ oop_oop_iterate_lockstack<T>(chunk, closure, chunk->range());
}
template <typename T, class OopClosureType>
void InstanceStackChunkKlass::oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr) {
stackChunkOop chunk = stackChunkOopDesc::cast(obj);
Devirtualizer::do_klass(closure, this);
}
}
oop_oop_iterate_stack_bounded<T>(chunk, closure, mr);
oop_oop_iterate_header_bounded<T>(chunk, closure, mr);
+ oop_oop_iterate_lockstack<T>(chunk, closure, mr);
}
template <typename T, class OopClosureType>
void InstanceStackChunkKlass::oop_oop_iterate_header(stackChunkOop chunk, OopClosureType* closure) {
T* parent_addr = chunk->field_addr<T>(jdk_internal_vm_StackChunk::parent_offset());
< prev index next >