< prev index next > src/hotspot/share/oops/instanceStackChunkKlass.cpp
Print this page
}
OopIterateStackChunkFrameClosure frame_closure(closure, mr);
chunk->iterate_stack(&frame_closure);
}
+ template <typename OopT>
+ void InstanceStackChunkKlass::oop_oop_iterate_lockstack(stackChunkOop chunk, OopIterateClosure* closure, MemRegion mr) {
+ StackChunkOopIterateFilterClosure<OopIterateClosure> cl(closure, mr);
+ if (chunk->has_bitmap()) {
+ chunk->iterate_lockstack<OopT>(&cl);
+ } else {
+ chunk->iterate_lockstack<oop>(&cl);
+ }
+ }
+
+ template void InstanceStackChunkKlass::oop_oop_iterate_lockstack<oop>(stackChunkOop chunk, OopIterateClosure* closure, MemRegion mr);
+ template void InstanceStackChunkKlass::oop_oop_iterate_lockstack<narrowOop>(stackChunkOop chunk, OopIterateClosure* closure, MemRegion mr);
+
#ifdef ASSERT
class DescribeStackChunkClosure {
stackChunkOop _chunk;
FrameValues _values;
template <ChunkFrames frame_kind, typename RegisterMapT>
bool do_frame(const StackChunkFrameStream<frame_kind>& fs, const RegisterMapT* map) {
frame f = fs.to_frame();
_st->print_cr("-- frame sp: " PTR_FORMAT " interpreted: %d size: %d argsize: %d",
p2i(fs.sp()), fs.is_interpreted(), f.frame_size(),
- fs.is_interpreted() ? 0 : f.compiled_frame_stack_argsize());
+ fs.is_interpreted() || fs.is_stub() ? 0 : f.compiled_frame_stack_argsize());
#ifdef ASSERT
f.print_value_on(_st, nullptr);
#else
f.print_on(_st);
#endif
< prev index next >