On Thu, 28 Jan 2021 22:40:57 GMT, Phil Race <p...@openjdk.org> wrote:
> This removes the JNF dependency from the jdk.hotspot.agent module. > The macro expansions are the same as already used in the Java desktop module > - which actually uses a macro > still but there there are hundreds of uses. > The function of this macro code is to prevent NSExceptions escaping to Java > and also to drain the auto-release pool. > What test group would be good for verifying this change ? src/jdk.hotspot.agent/macosx/native/libsaproc/MacosxDebuggerLocal.m line 294: > 292: > 293: NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; > 294: @try { Although there are only 3 places where the `JNF_COCOA_ENTER/EXIT` macros are used, it seems it would still be worth taking the same approach you did for `java.desktop` and add the replacement macros instead of inlining them. So just copy what you added to `src/java.desktop/macosx/native/libosxapp/JNIUtilities.h`, and replace `JNF_COCOA_ENTER` with `JNI_COCOA_ENTER/EXIT`. Otherwise the `JNF_COCOA_ENTER/EXIT` changes look fine to me, but I'm just basing this on a comparison with what you've done with `java.desktop`. I'm no expert in this area. src/jdk.hotspot.agent/macosx/native/libsaproc/MacosxDebuggerLocal.m line 296: > 294: @try { > 295: > 296: NSString *symbolNameString = JavaStringToNSString(env, symbolName); Is there a reason why `java.desktop` continues to use `JNFJavaToNSString`? I was looking to see how this was handled in other places, but I couldn't find an example where `JNFJavaToNSString` was converted to call a newly implemented `JavaStringToNSString`. ------------- PR: https://git.openjdk.java.net/jdk/pull/2304