On Fri, 8 Jan 2021 07:03:28 GMT, David Holmes <dhol...@openjdk.org> wrote:
>> src/hotspot/share/prims/jvmtiExport.cpp line 1891: >> >>> 1889: // At least one field access watch is set so we have more work >>> 1890: // to do. This wrapper is used by "quick" entry points that don't >>> 1891: // allow us to create handles in post_field_access_by_jni(). We >> >> This part of the comment should have remained - no? It is what distinguishes >> the _nh version from the regular version. (Though this code seems so >> confused it may be that we don't even need a _nh version?) >> >> Cheers, >> David > > Looking closer this code is broken - both the _nh and regular version > actually create Handles! The _nh version should be read as being used when > "the caller does not allow handles" and hence it needed the RNHM. So either > the RHNM remains necessary or else all calls to x_nh() should be changed to > x(). > > David Calls to x_nh() should be changed to x(). QUICK_ENTRY was removed in https://bugs.openjdk.java.net/browse/JDK-8228758 and this was called via JNI_QUICK_ENTRY back then. All this complex machinery makes me want to remove HandleMarks completely in favor of having Handles be RAII objects like methodHandles. I can file a bug to remove the _nh version of this function. ------------- PR: https://git.openjdk.java.net/jdk/pull/1975