changeset 8208:0ed939dc4230

8025294: [parfait] JNI-related warnings from b107 for jdk.src.solaris.native.sun.java2d.x11 Reviewed-by: prr, jgodinez
author jchen
date Thu, 03 Oct 2013 13:49:52 -0700
parents d37594b689ce
children 8fd757f31470
files src/solaris/native/sun/java2d/x11/X11Renderer.c src/solaris/native/sun/java2d/x11/X11SurfaceData.c src/solaris/native/sun/java2d/x11/XRBackendNative.c src/solaris/native/sun/java2d/x11/XRSurfaceData.c
diffstat 4 files changed, 28 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/solaris/native/sun/java2d/x11/X11Renderer.c	Thu Oct 03 13:41:53 2013 -0700
+++ b/src/solaris/native/sun/java2d/x11/X11Renderer.c	Thu Oct 03 13:49:52 2013 -0700
@@ -465,9 +465,7 @@
 
     points = transformPoints(env, xcoordsArray, ycoordsArray, transx, transy,
                              pTmp, (int *)&npoints, isclosed);
-    if (points == 0) {
-        JNU_ThrowOutOfMemoryError(env, "translated coordinate array");
-    } else {
+    if (points != 0) {
         if (npoints == 2) {
             /*
              * Some X11 implementations fail to draw anything for
@@ -588,6 +586,7 @@
         NULL
     };
     PHStroke stroke;
+    jboolean ok = JNI_TRUE;
 
     if (xsdo == NULL) {
         return;
@@ -625,8 +624,6 @@
         types = (jbyte*)
             (*env)->GetPrimitiveArrayCritical(env, typesArray, NULL);
         if (types != NULL) {
-            jboolean ok;
-
             if (isFill) {
                 drawHandler.pDrawScanline = &drawScanline;
                 ok = doFillPath(&drawHandler,
@@ -643,14 +640,14 @@
                                 types, numTypes,
                                 stroke);
             }
-            if (!ok) {
-                JNU_ThrowArrayIndexOutOfBoundsException(env, "coords array");
-            }
             (*env)->ReleasePrimitiveArrayCritical(env, typesArray, types,
                                                   JNI_ABORT);
         }
         (*env)->ReleasePrimitiveArrayCritical(env, coordsArray, coords,
                                               JNI_ABORT);
+        if (!ok) {
+            JNU_ThrowArrayIndexOutOfBoundsException(env, "coords array");
+        }
     }
 
     XDHD_FREE_POINTS(&dHData);
@@ -893,9 +890,7 @@
 
     points = transformPoints(env, xcoordsArray, ycoordsArray, transx, transy,
                              pTmp, (int *)&npoints, JNI_FALSE);
-    if (points == 0) {
-        JNU_ThrowOutOfMemoryError(env, "translated coordinate array");
-    } else {
+    if (points != 0) {
         if (npoints > 2) {
             XFillPolygon(awt_display, xsdo->drawable, (GC) xgc,
                          points, npoints, Complex, CoordModeOrigin);
--- a/src/solaris/native/sun/java2d/x11/X11SurfaceData.c	Thu Oct 03 13:41:53 2013 -0700
+++ b/src/solaris/native/sun/java2d/x11/X11SurfaceData.c	Thu Oct 03 13:49:52 2013 -0700
@@ -227,7 +227,7 @@
 #if defined(HEADLESS) || !defined(MITSHM)
     return JNI_FALSE;
 #else
-    return useMitShmPixmaps;
+    return (jboolean)useMitShmPixmaps;
 #endif /* HEADLESS, MITSHM */
 }
 
@@ -258,6 +258,7 @@
 {
 #ifndef HEADLESS
     X11SDOps *xsdo = (X11SDOps*)SurfaceData_InitOps(env, xsd, sizeof(X11SDOps));
+    jboolean hasException;
     if (xsdo == NULL) {
         JNU_ThrowOutOfMemoryError(env, "Initialization of SurfaceData failed.");
         return;
@@ -270,7 +271,10 @@
     xsdo->ReleasePixmapWithBg = X11SD_ReleasePixmapWithBg;
     xsdo->widget = NULL;
     if (peer != NULL) {
-        xsdo->drawable = JNU_CallMethodByName(env, NULL, peer, "getWindow", "()J").j;
+        xsdo->drawable = JNU_CallMethodByName(env, &hasException, peer, "getWindow", "()J").j;
+        if (hasException) {
+            return;
+        }
     } else {
         xsdo->drawable = 0;
     }
--- a/src/solaris/native/sun/java2d/x11/XRBackendNative.c	Thu Oct 03 13:41:53 2013 -0700
+++ b/src/solaris/native/sun/java2d/x11/XRBackendNative.c	Thu Oct 03 13:49:52 2013 -0700
@@ -326,7 +326,13 @@
     jlong fmt32;
 
     jfieldID a8ID = (*env)->GetStaticFieldID(env, cls, "FMTPTR_A8", "J");
+    if (a8ID == NULL) {
+        return;
+    }
     jfieldID argb32ID = (*env)->GetStaticFieldID(env, cls, "FMTPTR_ARGB32", "J");
+    if (argb32ID == NULL) {
+        return;
+    }
 
     if (awt_display == (Display *)NULL) {
         return;
@@ -346,6 +352,10 @@
     defaultImg = XCreateImage(awt_display, NULL, 8, ZPixmap, 0, maskData, 32, 32, 8, 0);
     defaultImg->data = maskData; //required?
     maskImgID = (*env)->GetStaticFieldID(env, cls, "MASK_XIMG", "J");
+    if (maskImgID == NULL) {
+       return;
+    }
+
     (*env)->SetStaticLongField(env, cls, maskImgID, ptr_to_jlong(defaultImg));
 }
 
--- a/src/solaris/native/sun/java2d/x11/XRSurfaceData.c	Thu Oct 03 13:41:53 2013 -0700
+++ b/src/solaris/native/sun/java2d/x11/XRSurfaceData.c	Thu Oct 03 13:49:52 2013 -0700
@@ -88,7 +88,13 @@
   J2dTraceLn(J2D_TRACE_INFO, "in XRSurfaceData_initIDs");
 
   pictID = (*env)->GetFieldID(env, xsd, "picture", "I");
+  if (pictID == NULL) {
+      return;
+  }
   xidID = (*env)->GetFieldID(env, xsd, "xid", "I");
+  if (xidID == NULL) {
+      return;
+  }
 
   XShared_initIDs(env, JNI_FALSE);
 #endif /* !HEADLESS */