src/macosx/native/sun/awt/ImageSurfaceData.m
Print this page
@@ -847,11 +847,11 @@
if (indexedColorTable[cacheIndex] == invalidIndex)
{
indexOfBest = 0;
distanceOfBest = DBL_MAX;
- for (i=0; i<lutDataSize; i++)
+ for (i=0; (unsigned)i<lutDataSize; i++)
{
p2 = lutdata[i];
da = p1a - ((p2 >> 24) & mask);
dr = p1r - ((p2 >> 16) & mask);
@@ -897,11 +897,11 @@
// callback from CG telling us it's done with the data. <rdar://problem/4762033>
static void releaseDataFromProvider(void *info, const void *data, size_t size)
{
if (data != NULL)
{
- free(data);
+ free((void*)data);
}
}
IMAGE_SURFACE_INLINE void createContext(JNIEnv *env, ImageSDOps *isdo)
{
@@ -1575,11 +1575,13 @@
static jfieldID sDataID = 0;
if (sDataID == 0)
{
static char *bimgName = "java/awt/image/BufferedImage";
jclass bimg = (*env)->FindClass(env, bimgName);
+ CHECK_NULL_RETURN(bimg, NULL);
sDataID = (*env)->GetFieldID(env, bimg, "sData", "Lsun/java2d/SurfaceData;");
+ CHECK_NULL_RETURN(sDataID, NULL);
}
return (*env)->GetObjectField(env, bufImg, sDataID);
}
@@ -1589,11 +1591,13 @@
static jfieldID sDataID = 0;
if (sDataID == 0)
{
static char *bimgName = "java/awt/image/BufferedImage";
jclass bimg = (*env)->FindClass(env, bimgName);
+ CHECK_NULL(bimg);
sDataID = (*env)->GetFieldID(env, bimg, "sData", "Lsun/java2d/SurfaceData;");
+ CHECK_NULL(sDataID);
}
(*env)->SetObjectField(env, bufImg, sDataID, sData);
}
@@ -1608,22 +1612,15 @@
if (sizeof(BufImgRIPrivate) > SD_RASINFO_PRIVATE_SIZE) {
JNU_ThrowInternalError(env, "Private RasInfo structure too large!");
return;
}
- icm = (*env)->FindClass(env, icmName);
- if (icm == NULL) {
- return;
- }
-
- rgbID = (*env)->GetFieldID(env, icm, "rgb", "[I");
- allGrayID = (*env)->GetFieldID(env, icm, "allgrayopaque", "Z");
- mapSizeID = (*env)->GetFieldID(env, icm, "map_size", "I");
- CMpDataID = (*env)->GetFieldID(env, icm, "pData", "J");
- if (allGrayID == 0 || rgbID == 0 || mapSizeID == 0 || CMpDataID == 0) {
- JNU_ThrowInternalError(env, "Could not get field IDs");
- }
+ CHECK_NULL(icm = (*env)->FindClass(env, icmName));
+ CHECK_NULL(rgbID = (*env)->GetFieldID(env, icm, "rgb", "[I"));
+ CHECK_NULL(allGrayID = (*env)->GetFieldID(env, icm, "allgrayopaque", "Z"));
+ CHECK_NULL(mapSizeID = (*env)->GetFieldID(env, icm, "map_size", "I"));
+ CHECK_NULL(CMpDataID = (*env)->GetFieldID(env, icm, "pData", "J"));
}
gColorspaceRGB = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB);
gColorspaceGray = CGColorSpaceCreateWithName(kCGColorSpaceGenericGray);
//fprintf(stderr, "gColorspaceRGB=%p, gColorspaceGray=%p\n", gColorspaceRGB, gColorspaceGray);
@@ -1793,10 +1790,11 @@
//bisdo->sdOps.Release = BufImg_Release;
//bisdo->sdOps.Unlock = NULL;
//bisdo->sdOps.Dispose = BufImg_Dispose;
bisdo->array = (*env)->NewWeakGlobalRef(env, array);
+ if (array != NULL) CHECK_NULL(bisdo->array);
bisdo->offset = offset;
//bisdo->scanStr = scanStr;
bisdo->scanStr = scanStride;
//bisdo->pixStr = pixStr;
bisdo->pixStr = pixelStride;
@@ -1805,12 +1803,14 @@
bisdo->lutsize = 0;
bisdo->icm = NULL;
} else {
jobject lutarray = (*env)->GetObjectField(env, icm, rgbID);
bisdo->lutarray = (*env)->NewWeakGlobalRef(env, lutarray);
+ if (lutarray != NULL) CHECK_NULL(bisdo->lutarray);
bisdo->lutsize = (*env)->GetIntField(env, icm, mapSizeID);
bisdo->icm = (*env)->NewWeakGlobalRef(env, icm);
+ if (icm != NULL) CHECK_NULL(bisdo->icm);
}
bisdo->rasbounds.x1 = 0;
bisdo->rasbounds.y1 = 0;
bisdo->rasbounds.x2 = width;
bisdo->rasbounds.y2 = height;
@@ -1885,11 +1885,11 @@
if (transparency == java_awt_Transparency_BITMASK)
{
Pixel32bit* src = lutdata;
Pixel32bit* dst = isdo->lutData;
jint i;
- for (i=0; i<isdo->lutDataSize; i++)
+ for (i=0; (unsigned)i<isdo->lutDataSize; i++)
{
if (i != transparent_index)
{
*dst = *src;
// rdar://problem/3390518 - don't force all indexed colors
@@ -1917,11 +1917,11 @@
}
Pixel32bit* src = lutdata;
Pixel32bit* dst = isdo->lutData;
jint i;
- for (i=0; i<isdo->lutDataSize; i++)
+ for (i=0; (unsigned)i<isdo->lutDataSize; i++)
{
*dst = *src | mask;
dst++; src++;
}
}