<AWT Dev> RFR: 8259651: [macOS] Replace JNF_COCOA_ENTER/EXIT macros

Phil Race prr at openjdk.java.net
Wed Jan 13 01:35:07 UTC 2021


Most of the changes here are simply
JNF_COCOA_ENTER -> JNI_COCOA_ENTER
JNF_COCOA_EXIT -> JNI_COCOA_EXIT

These new macros are defined in JNIUtilities.h and handle the auto release and on exit catch any NSException.
Unlike the JNF code, JNI exceptions don't have to be extracted from the NSException.

So calls to JNFException are also removed and in most cases they are just directly using one of the JNU_*
defined exceptions since we are in a native nethod and can return control directly to Java.

JNIUtilities has just two macros for cases where we need to accompany it with an NSException because
we aren't in the immediate body of a JNI method.

JNIUtilities also has a macro JNI_COCOA_EXIT_WITH_ACTION
This is used by a macro in QuartzSurfaceData.m to re-implement a pre-existing macro
JNF_COCOA_RENDERER_EXIT as JNI_COCOA_RENDERER_EXIT.
This is used in a few places to ensure that we call FinishSurface on the Quartz surface.

This already passed all our automated tests, although I'm re-running since I needed to merge to the
current repo state.

-------------

Commit messages:
 - 8259651: [macOS] Replace JNF_COCOA_ENTER/EXIT macros
 - 8259651: [macOS] Replace JNF_COCOA_ENTER/EXIT macros

Changes: https://git.openjdk.java.net/jdk/pull/2056/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2056&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8259651
  Stats: 602 lines in 48 files changed: 58 ins; 17 del; 527 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2056.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2056/head:pull/2056

PR: https://git.openjdk.java.net/jdk/pull/2056


More information about the awt-dev mailing list