On Mon, 2 Nov 2020 16:20:09 GMT, Coleen Phillimore <[email protected]> wrote:
>> Erik Österlund has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> Coleen CR1: Refactoring
>
> This looks better. Just to have the JRT_BLOCK be unconditional is an
> improvement.
Erik,
Thank you for the update! It looks more elegant.
One concern is that after the move of this fragment to the
post_method_exit_inner:
1614 if (state == NULL || !state->is_interp_only_mode()) {
1615 // for any thread that actually wants method exit, interp_only_mode is
set
1616 return;
1617 }
there is no guarantee that the current frame is interpreted below:
1580 if (!exception_exit) {
1581 oop oop_result;
1582 BasicType type = current_frame.interpreter_frame_result(&oop_result,
&value);
. . .
1597 if (result.not_null() && !mh->is_native()) {
1598 // We have to restore the oop on the stack for interpreter frames
1599 *(oop*)current_frame.interpreter_frame_tos_address() = result();
1600 }
Probably, extra checks for current_frame.is_interpreted_frame() in these
fragments will be sufficient.
-------------
PR: https://git.openjdk.java.net/jdk/pull/930