mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-18 01:54:47 +02:00
8244920: Access violation in frames::interpreter_frame_method
Reviewed-by: mgronlun, coleenp
This commit is contained in:
parent
ac2828ddf1
commit
f160c80e3b
1 changed files with 8 additions and 1 deletions
|
@ -664,9 +664,17 @@ JRT_LEAF(BasicType, Deoptimization::unpack_frames(JavaThread* thread, int exec_m
|
|||
|
||||
UnrollBlock* info = array->unroll_block();
|
||||
|
||||
// We set the last_Java frame. But the stack isn't really parsable here. So we
|
||||
// clear it to make sure JFR understands not to try and walk stacks from events
|
||||
// in here.
|
||||
intptr_t* sp = thread->frame_anchor()->last_Java_sp();
|
||||
thread->frame_anchor()->set_last_Java_sp(NULL);
|
||||
|
||||
// Unpack the interpreter frames and any adapter frame (c2 only) we might create.
|
||||
array->unpack_to_stack(stub_frame, exec_mode, info->caller_actual_parameters());
|
||||
|
||||
thread->frame_anchor()->set_last_Java_sp(sp);
|
||||
|
||||
BasicType bt = info->return_type();
|
||||
|
||||
// If we have an exception pending, claim that the return type is an oop
|
||||
|
@ -802,7 +810,6 @@ JRT_LEAF(BasicType, Deoptimization::unpack_frames(JavaThread* thread, int exec_m
|
|||
}
|
||||
#endif /* !PRODUCT */
|
||||
|
||||
|
||||
return bt;
|
||||
JRT_END
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue