On Mon, 8 Sep 2025 18:31:51 GMT, Leonid Mesnik <[email protected]> wrote:
>> This is the second attempt to fix method `post_meth_exit` to correctly set >> state and preserve result. >> The related fix here: >> https://github.com/openjdk/jdk/commit/b7b64bb6c800b45e32ff37b1b92b5927a3b3fb56 >> Hope fix became clarere now. >> >> There 2 problems in this post_meth_exit: >> 1) The result is preserved only if >> `state->is_enabled(JVMTI_EVENT_METHOD_EXIT)` however transition in the >> JRT_BLOCK_END happens always. So there is a risk of loosing method results >> in the interp_only mode. >> 2) The method `get_jvmti_thread_state` should be called when thread is in vm >> state only. >> >> The fix adds `post_method_exit_transition` to have single exit point with >> oop restoration. > > Leonid Mesnik has updated the pull request incrementally with one additional > commit since the last revision: > > interopnly_state should be saved Thanks that looks clearer to me now. One pre-existing typo. src/hotspot/share/prims/jvmtiExport.cpp line 1870: > 1868: JRT_BLOCK_END > 1869: if (interp_only) { > 1870: // The JRT_BLOCK_END can safepoint in ThreadInVMfromJava > desctructor. Now it is safe to allow Suggestion: // The JRT_BLOCK_END can safepoint in ThreadInVMfromJava destructor. Now it is safe to allow ------------- Marked as reviewed by dholmes (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/27112#pullrequestreview-3199680287 PR Review Comment: https://git.openjdk.org/jdk/pull/27112#discussion_r2332223595
