jdk/src/java.desktop/share/native/libawt/sun/awt/image/BufImgSurfaceData.c
changeset 26037 508779ce6619
parent 26015 627f46c41588
parent 25859 3317bb8137f4
--- a/jdk/src/java.desktop/share/native/libawt/sun/awt/image/BufImgSurfaceData.c	Mon Aug 18 14:03:21 2014 +0100
+++ b/jdk/src/java.desktop/share/native/libawt/sun/awt/image/BufImgSurfaceData.c	Tue Aug 19 10:32:16 2014 -0700
@@ -291,7 +291,12 @@
             = (*env)->GetBooleanField(env, bisdo->icm, allGrayID);
         int *pRgb = (int *)
             ((*env)->GetPrimitiveArrayCritical(env, bisdo->lutarray, NULL));
-        CHECK_NULL_RETURN(pRgb, (ColorData*)NULL);
+
+        if (pRgb == NULL) {
+            free(cData);
+            return (ColorData*)NULL;
+        }
+
         cData->img_clr_tbl = initCubemap(pRgb, bisdo->lutsize, 32);
         if (allGray == JNI_TRUE) {
             initInverseGrayLut(pRgb, bisdo->lutsize, cData);
@@ -304,7 +309,13 @@
         if (JNU_IsNull(env, colorData)) {
             jlong pData = ptr_to_jlong(cData);
             colorData = (*env)->NewObjectA(env, clsICMCD, initICMCDmID, (jvalue *)&pData);
-            JNU_CHECK_EXCEPTION_RETURN(env, (ColorData*)NULL);
+
+            if ((*env)->ExceptionCheck(env))
+            {
+                free(cData);
+                return (ColorData*)NULL;
+            }
+
             (*env)->SetObjectField(env, bisdo->icm, colorDataID, colorData);
         }
     }