24
24
*/
25
25
26
26
#import " GeomUtilities.h"
27
+ #import < JavaNativeFoundation/JavaNativeFoundation.h>
27
28
28
29
static jobject NewJavaRect (JNIEnv *env, jdouble x, jdouble y, jdouble w, jdouble h) {
29
30
DECLARE_CLASS_RETURN (sjc_Rectangle2DDouble, " java/awt/geom/Rectangle2D$Double" , NULL );
@@ -55,10 +56,11 @@ NSRect JavaToNSRect(JNIEnv *env, jobject rect) {
55
56
DECLARE_METHOD_RETURN (jm_rect_getY, sjc_Rectangle2D, " getY" , " ()D" , NSZeroRect );
56
57
DECLARE_METHOD_RETURN (jm_rect_getWidth, sjc_Rectangle2D, " getWidth" , " ()D" , NSZeroRect );
57
58
DECLARE_METHOD_RETURN (jm_rect_getHeight, sjc_Rectangle2D, " getHeight" , " ()D" , NSZeroRect );
58
- return NSMakeRect ((*env)->CallDoubleMethod (env, rect, jm_rect_getX),
59
- (*env)->CallDoubleMethod (env, rect, jm_rect_getY),
60
- (*env)->CallDoubleMethod (env, rect, jm_rect_getWidth),
61
- (*env)->CallDoubleMethod (env, rect, jm_rect_getHeight));
59
+ jdouble x = (*env)->CallDoubleMethod (env, rect, jm_rect_getX); CHECK_EXCEPTION ();
60
+ jdouble y = (*env)->CallDoubleMethod (env, rect, jm_rect_getY); CHECK_EXCEPTION ();
61
+ jdouble w = (*env)->CallDoubleMethod (env, rect, jm_rect_getWidth); CHECK_EXCEPTION ();
62
+ jdouble h = (*env)->CallDoubleMethod (env, rect, jm_rect_getHeight); CHECK_EXCEPTION ();
63
+ return NSMakeRect (x, y, w, h);
62
64
}
63
65
64
66
jobject NSToJavaPoint (JNIEnv *env, NSPoint point) {
@@ -73,9 +75,9 @@ NSPoint JavaToNSPoint(JNIEnv *env, jobject point) {
73
75
DECLARE_CLASS_RETURN (sjc_Point2D, " java/awt/geom/Point2D" , NSZeroPoint );
74
76
DECLARE_METHOD_RETURN (jm_pt_getX, sjc_Point2D, " getX" , " ()D" , NSZeroPoint );
75
77
DECLARE_METHOD_RETURN (jm_pt_getY, sjc_Point2D, " getY" , " ()D" , NSZeroPoint );
76
-
77
- return NSMakePoint (( *env)->CallDoubleMethod (env, point, jm_pt_getX),
78
- (*env)-> CallDoubleMethod (env, point, jm_pt_getY) );
78
+ jdouble x = (*env)-> CallDoubleMethod (env, point, jm_pt_getX); CHECK_EXCEPTION ();
79
+ jdouble y = ( *env)->CallDoubleMethod (env, point, jm_pt_getY); CHECK_EXCEPTION ();
80
+ return NSMakePoint (x, y );
79
81
}
80
82
81
83
jobject NSToJavaSize (JNIEnv *env, NSSize size) {
@@ -90,14 +92,15 @@ NSSize JavaToNSSize(JNIEnv *env, jobject dimension) {
90
92
DECLARE_CLASS_RETURN (sjc_Dimension2D, " java/awt/geom/Dimension2D" , NSZeroSize );
91
93
DECLARE_METHOD_RETURN (jm_sz_getWidth, sjc_Dimension2D, " getWidth" , " ()D" , NSZeroSize );
92
94
DECLARE_METHOD_RETURN (jm_sz_getHeight, sjc_Dimension2D, " getHeight" , " ()D" , NSZeroSize );
93
-
94
- return NSMakeSize (( *env)->CallDoubleMethod (env, dimension, jm_sz_getWidth),
95
- (*env)-> CallDoubleMethod (env, dimension, jm_sz_getHeight) );
95
+ jdouble w = (*env)-> CallDoubleMethod (env, dimension, jm_sz_getWidth); CHECK_EXCEPTION ();
96
+ jdouble h = ( *env)->CallDoubleMethod (env, dimension, jm_sz_getHeight); CHECK_EXCEPTION ();
97
+ return NSMakeSize (w, h );
96
98
}
97
99
98
100
static NSScreen *primaryScreen (JNIEnv *env) {
99
101
NSScreen *primaryScreen = [[NSScreen screens ] objectAtIndex: 0 ];
100
102
if (primaryScreen != nil ) return primaryScreen;
103
+ if (env != NULL ) [JNFException raise :env as: kRuntimeException reason: " Failed to convert, no screen." ];
101
104
return nil ;
102
105
}
103
106
0 commit comments