On Thu, 17 Dec 2020 21:32:16 GMT, Phil Race <p...@openjdk.org> wrote:
>> This defines some macros to support declaring and initialising statically >> allocated instances of jclass, jmethodID and jfieldID >> and changes many existing uses of JNF macros/functions to use these instead. >> Then calls to JNFCall* and JNFNewObject - etc are updated to directly call >> JNI methods >> JNI exception checking macros are added as needed. > > Phil Race has updated the pull request incrementally with one additional > commit since the last revision: > > 8257853: Remove dependencies on JNF's JNI utility functions in AWT and 2D > code I believe we could add CHECK_EXCEPTION in few places...pointing those out... src/java.desktop/macosx/native/libosxui/ScreenMenu.m line 154: > 152: (*env)->CallVoidMethod(env, [self.javaObjectWrapper jObject], > jm_ScreenMenu_updateSelectedItem, menuIndex, > 153: NSMinY(rect), NSMinX(rect), NSMaxY(rect), > NSMaxX(rect)); // AWT_THREADING Safe (AWTRunLoopMode) > 154: Don't we need to call CHECK_EXCEPTION here? src/java.desktop/macosx/native/libawt_lwawt/awt/CDragSource.m line 575: > 573: DECLARE_METHOD(dragDropFinishedMethod, > CDragSourceContextPeerClass, "dragDropFinished", "(ZIII)V"); > 574: DLog3(@" -> posting dragDropFinished, point %f, %f", point.x, > point.y); > 575: (*env)->CallVoidMethod(env, fDragSourceContextPeer, > dragDropFinishedMethod, success, dragOp, (jint) point.x, (jint) point.y); // > AWT_THREADING Safe (event) CHECK_EXCEPTION missed? src/java.desktop/macosx/native/libawt_lwawt/awt/CDropTarget.m line 511: > 509: // Double-casting self gets rid of 'different size' compiler > warning: > 510: // AWT_THREADING Safe (CToolkitThreadBlockedHandler) > 511: actions = (*env)->CallIntMethod(env, fDropTargetContextPeer, > handleEnterMessageMethod, Should call CHECK_EXCEPTION here src/java.desktop/macosx/native/libawt_lwawt/awt/CDropTarget.m line 596: > 594: if (sDraggingError == FALSE) { > 595: DLog3(@" >> posting handleMotionMessage, point %f, %f", > javaLocation.x, javaLocation.y); > 596: userAction = (*env)->CallIntMethod(env, > fDropTargetContextPeer, handleMotionMessageMethod, fComponent, CHECK_EXCEPTION missing src/java.desktop/macosx/native/libawt_lwawt/awt/CPrinterJob.m line 454: > 452: jint selectID = (*env)->CallIntMethod(env, srcPrinterJob, > jm_getSelectAttrib); > 453: jint fromPage = (*env)->CallIntMethod(env, srcPrinterJob, > jm_getFromPage); > 454: jint toPage = (*env)->CallIntMethod(env, srcPrinterJob, > jm_getToPage); CHECK_EXCEPTION missing src/java.desktop/macosx/native/libawt_lwawt/awt/PrinterView.m line 220: > 218: [[[NSPrintOperation currentOperation] printInfo] > orientation]; > 219: // set page orientation > 220: switch ((*env)->CallIntMethod(env, fCurPageFormat, > jm_getOrientation)) { CHECK_EXCEPTION? src/java.desktop/macosx/native/libawt_lwawt/awt/CPrinterJob.m line 625: > 623: NSPrintInfo* printInfo = > (NSPrintInfo*)jlong_to_ptr((*env)->CallLongMethod(env, jthis, > sjm_getNSPrintInfo)); // AWT_THREADING Safe (known object) > 624: CHECK_EXCEPTION(); > 625: jobject printerTrayObj = (*env)->CallObjectMethod(env, jthis, > jm_getPrinterTray); CHECK_EXCEPTION? src/java.desktop/macosx/native/libawt_lwawt/awt/CPrinterJob.m line 649: > 647: > 648: // <rdar://problem/4367998> JTable.print attributes are ignored > 649: jobject pageable = (*env)->CallObjectMethod(env, jthis, > jm_getPageable); // AWT_THREADING Safe (!appKit) same CHECK_EXCEPTION? src/java.desktop/macosx/native/libawt_lwawt/awt/CPrinterJob.m line 694: > 692: jobject printerJob = (*env)->GetObjectField(env, jthis, > sjm_printerJob); > 693: if (printerJob == NULL) return NO; > 694: NSPrintInfo* printInfo = > (NSPrintInfo*)jlong_to_ptr((*env)->CallLongMethod(env, printerJob, > sjm_getNSPrintInfo)); // AWT_THREADING Safe (known object) missing CHECK_EXCEPTION src/java.desktop/macosx/native/libawt_lwawt/awt/CPrinterJob.m line 743: > 741: if (printerJob == NULL) return NO; > 742: GET_NSPRINTINFO_METHOD_RETURN(NO) > 743: NSPrintInfo* printInfo = > (NSPrintInfo*)jlong_to_ptr((*env)->CallLongMethod(env, printerJob, > sjm_getNSPrintInfo)); // AWT_THREADING Safe (known object) CHECK_EXCEPTION? src/java.desktop/macosx/native/libawt_lwawt/awt/CTrayIcon.m line 274: > 272: DECLARE_CLASS(jc_CTrayIcon, "sun/lwawt/macosx/CTrayIcon"); > 273: DECLARE_METHOD(jm_getPopupMenuModel, jc_CTrayIcon, > "getPopupMenuModel", "()J"); > 274: jlong res = (*env)->CallLongMethod(env, trayIcon.peer, > jm_getPopupMenuModel); CHECK_EXCEPTION? src/java.desktop/macosx/native/libawt_lwawt/awt/PrinterView.m line 125: > 123: DECLARE_METHOD_RETURN(jm_getJobName, sjc_CPrinterJob, "getJobName", > "()Ljava/lang/String;", nil); > 124: > 125: jobject o = (*env)->CallObjectMethod(env, fPrinterJob, > jm_getJobName); // AWT_THREADING Safe (known object) CHECK_EXCEPTION? src/java.desktop/macosx/native/libawt_lwawt/awt/PrinterView.m line 196: > 194: } > 195: > 196: jobjectArray objectArray = (*env)->CallObjectMethod(env, fPrinterJob, CHECK_EXCEPTION? src/java.desktop/macosx/native/libawt_lwawt/awt/PrinterView.m line 214: > 212: > 213: // Actually print and get the PageFormatArea > 214: jobject pageFormatArea = (*env)->CallObjectMethod(env, > fPrinterJob, jm_printAndGetPageFormatArea, fCurPainter, CHECK_EXCEPTION? ------------- PR: https://git.openjdk.java.net/jdk/pull/1679