提交 118c9a46 编写于 作者: J jchen

8025429: [parfait] warnings from b107 for sun.java2d.cmm: JNI exception pending

Reviewed-by: prr, bae
上级 998d0841
...@@ -185,6 +185,10 @@ JNIEXPORT jlong JNICALL Java_sun_java2d_cmm_lcms_LCMS_createNativeTransform ...@@ -185,6 +185,10 @@ JNIEXPORT jlong JNICALL Java_sun_java2d_cmm_lcms_LCMS_createNativeTransform
size = (*env)->GetArrayLength (env, profileIDs); size = (*env)->GetArrayLength (env, profileIDs);
ids = (*env)->GetLongArrayElements(env, profileIDs, 0); ids = (*env)->GetLongArrayElements(env, profileIDs, 0);
if (ids == NULL) {
// An exception should have already been thrown.
return 0L;
}
#ifdef _LITTLE_ENDIAN #ifdef _LITTLE_ENDIAN
/* Reversing data packed into int for LE archs */ /* Reversing data packed into int for LE archs */
...@@ -272,13 +276,13 @@ JNIEXPORT jlong JNICALL Java_sun_java2d_cmm_lcms_LCMS_loadProfileNative ...@@ -272,13 +276,13 @@ JNIEXPORT jlong JNICALL Java_sun_java2d_cmm_lcms_LCMS_loadProfileNative
sProf.j = 0L; sProf.j = 0L;
dataArray = (*env)->GetByteArrayElements (env, data, 0); dataArray = (*env)->GetByteArrayElements (env, data, 0);
dataSize = (*env)->GetArrayLength (env, data);
if (dataArray == NULL) { if (dataArray == NULL) {
JNU_ThrowIllegalArgumentException(env, "Invalid profile data"); // An exception should have already been thrown.
return 0L; return 0L;
} }
dataSize = (*env)->GetArrayLength (env, data);
pf = cmsOpenProfileFromMem((const void *)dataArray, pf = cmsOpenProfileFromMem((const void *)dataArray,
(cmsUInt32Number) dataSize); (cmsUInt32Number) dataSize);
...@@ -369,6 +373,10 @@ JNIEXPORT void JNICALL Java_sun_java2d_cmm_lcms_LCMS_getProfileDataNative ...@@ -369,6 +373,10 @@ JNIEXPORT void JNICALL Java_sun_java2d_cmm_lcms_LCMS_getProfileDataNative
} }
dataArray = (*env)->GetByteArrayElements (env, data, 0); dataArray = (*env)->GetByteArrayElements (env, data, 0);
if (dataArray == NULL) {
// An exception should have already been thrown.
return;
}
status = cmsSaveProfileToMem(sProf.lcmsPf->pf, dataArray, &pfSize); status = cmsSaveProfileToMem(sProf.lcmsPf->pf, dataArray, &pfSize);
...@@ -415,17 +423,15 @@ JNIEXPORT jbyteArray JNICALL Java_sun_java2d_cmm_lcms_LCMS_getTagNative ...@@ -415,17 +423,15 @@ JNIEXPORT jbyteArray JNICALL Java_sun_java2d_cmm_lcms_LCMS_getTagNative
data = (*env)->NewByteArray(env, bufSize); data = (*env)->NewByteArray(env, bufSize);
if (data == NULL) { if (data == NULL) {
JNU_ThrowByName(env, "java/awt/color/CMMException", // An exception should have already been thrown.
"Unable to allocate buffer");
return NULL; return NULL;
} }
dataArray = (*env)->GetByteArrayElements (env, data, 0); dataArray = (*env)->GetByteArrayElements (env, data, 0);
if (dataArray == NULL) { if (dataArray == NULL) {
JNU_ThrowByName(env, "java/awt/color/CMMException", // An exception should have already been thrown.
"Unable to get buffer"); return NULL;
return NULL;
} }
status = _getHeaderInfo(sProf.lcmsPf->pf, dataArray, bufSize); status = _getHeaderInfo(sProf.lcmsPf->pf, dataArray, bufSize);
...@@ -452,16 +458,14 @@ JNIEXPORT jbyteArray JNICALL Java_sun_java2d_cmm_lcms_LCMS_getTagNative ...@@ -452,16 +458,14 @@ JNIEXPORT jbyteArray JNICALL Java_sun_java2d_cmm_lcms_LCMS_getTagNative
// allocate java array // allocate java array
data = (*env)->NewByteArray(env, tagSize); data = (*env)->NewByteArray(env, tagSize);
if (data == NULL) { if (data == NULL) {
JNU_ThrowByName(env, "java/awt/color/CMMException", // An exception should have already been thrown.
"Unable to allocate buffer");
return NULL; return NULL;
} }
dataArray = (*env)->GetByteArrayElements (env, data, 0); dataArray = (*env)->GetByteArrayElements (env, data, 0);
if (dataArray == NULL) { if (dataArray == NULL) {
JNU_ThrowByName(env, "java/awt/color/CMMException", // An exception should have already been thrown.
"Unable to get buffer");
return NULL; return NULL;
} }
...@@ -506,7 +510,7 @@ JNIEXPORT void JNICALL Java_sun_java2d_cmm_lcms_LCMS_setTagDataNative ...@@ -506,7 +510,7 @@ JNIEXPORT void JNICALL Java_sun_java2d_cmm_lcms_LCMS_setTagDataNative
dataArray = (*env)->GetByteArrayElements(env, data, 0); dataArray = (*env)->GetByteArrayElements(env, data, 0);
if (dataArray == NULL) { if (dataArray == NULL) {
JNU_ThrowIllegalArgumentException(env, "Can not write tag data."); // An exception should have already been thrown.
return; return;
} }
...@@ -617,8 +621,7 @@ JNIEXPORT void JNICALL Java_sun_java2d_cmm_lcms_LCMS_colorConvert ...@@ -617,8 +621,7 @@ JNIEXPORT void JNICALL Java_sun_java2d_cmm_lcms_LCMS_colorConvert
if (inputBuffer == NULL) { if (inputBuffer == NULL) {
J2dRlsTraceLn(J2D_TRACE_ERROR, ""); J2dRlsTraceLn(J2D_TRACE_ERROR, "");
JNU_ThrowByName(env, "java/awt/color/CMMException", // An exception should have already been thrown.
"Cannot get input data");
return; return;
} }
...@@ -626,8 +629,7 @@ JNIEXPORT void JNICALL Java_sun_java2d_cmm_lcms_LCMS_colorConvert ...@@ -626,8 +629,7 @@ JNIEXPORT void JNICALL Java_sun_java2d_cmm_lcms_LCMS_colorConvert
if (outputBuffer == NULL) { if (outputBuffer == NULL) {
releaseILData(env, inputBuffer, srcDType, srcData); releaseILData(env, inputBuffer, srcDType, srcData);
JNU_ThrowByName(env, "java/awt/color/CMMException", // An exception should have already been thrown.
"Cannot get output data");
return; return;
} }
...@@ -659,9 +661,15 @@ JNIEXPORT jobject JNICALL Java_sun_java2d_cmm_lcms_LCMS_getProfileID ...@@ -659,9 +661,15 @@ JNIEXPORT jobject JNICALL Java_sun_java2d_cmm_lcms_LCMS_getProfileID
jfieldID fid = (*env)->GetFieldID (env, jfieldID fid = (*env)->GetFieldID (env,
(*env)->GetObjectClass(env, pf), (*env)->GetObjectClass(env, pf),
"cmmProfile", "Lsun/java2d/cmm/Profile;"); "cmmProfile", "Lsun/java2d/cmm/Profile;");
if (fid == NULL) {
return NULL;
}
jclass clsLcmsProfile = (*env)->FindClass(env, jclass clsLcmsProfile = (*env)->FindClass(env,
"sun/java2d/cmm/lcms/LCMSProfile"); "sun/java2d/cmm/lcms/LCMSProfile");
if (clsLcmsProfile == NULL) {
return NULL;
}
jobject cmmProfile = (*env)->GetObjectField (env, pf, fid); jobject cmmProfile = (*env)->GetObjectField (env, pf, fid);
...@@ -687,18 +695,51 @@ JNIEXPORT void JNICALL Java_sun_java2d_cmm_lcms_LCMS_initLCMS ...@@ -687,18 +695,51 @@ JNIEXPORT void JNICALL Java_sun_java2d_cmm_lcms_LCMS_initLCMS
* unloading * unloading
*/ */
Trans_renderType_fID = (*env)->GetFieldID (env, Trans, "renderType", "I"); Trans_renderType_fID = (*env)->GetFieldID (env, Trans, "renderType", "I");
if (Trans_renderType_fID == NULL) {
return;
}
Trans_ID_fID = (*env)->GetFieldID (env, Trans, "ID", "J"); Trans_ID_fID = (*env)->GetFieldID (env, Trans, "ID", "J");
if (Trans_ID_fID == NULL) {
return;
}
IL_isIntPacked_fID = (*env)->GetFieldID (env, IL, "isIntPacked", "Z"); IL_isIntPacked_fID = (*env)->GetFieldID (env, IL, "isIntPacked", "Z");
if (IL_isIntPacked_fID == NULL) {
return;
}
IL_dataType_fID = (*env)->GetFieldID (env, IL, "dataType", "I"); IL_dataType_fID = (*env)->GetFieldID (env, IL, "dataType", "I");
if (IL_dataType_fID == NULL) {
return;
}
IL_pixelType_fID = (*env)->GetFieldID (env, IL, "pixelType", "I"); IL_pixelType_fID = (*env)->GetFieldID (env, IL, "pixelType", "I");
if (IL_pixelType_fID == NULL) {
return;
}
IL_dataArray_fID = (*env)->GetFieldID(env, IL, "dataArray", IL_dataArray_fID = (*env)->GetFieldID(env, IL, "dataArray",
"Ljava/lang/Object;"); "Ljava/lang/Object;");
if (IL_dataArray_fID == NULL) {
return;
}
IL_width_fID = (*env)->GetFieldID (env, IL, "width", "I"); IL_width_fID = (*env)->GetFieldID (env, IL, "width", "I");
if (IL_width_fID == NULL) {
return;
}
IL_height_fID = (*env)->GetFieldID (env, IL, "height", "I"); IL_height_fID = (*env)->GetFieldID (env, IL, "height", "I");
if (IL_height_fID == NULL) {
return;
}
IL_offset_fID = (*env)->GetFieldID (env, IL, "offset", "I"); IL_offset_fID = (*env)->GetFieldID (env, IL, "offset", "I");
if (IL_offset_fID == NULL) {
return;
}
IL_imageAtOnce_fID = (*env)->GetFieldID (env, IL, "imageAtOnce", "Z"); IL_imageAtOnce_fID = (*env)->GetFieldID (env, IL, "imageAtOnce", "Z");
if (IL_imageAtOnce_fID == NULL) {
return;
}
IL_nextRowOffset_fID = (*env)->GetFieldID (env, IL, "nextRowOffset", "I"); IL_nextRowOffset_fID = (*env)->GetFieldID (env, IL, "nextRowOffset", "I");
if (IL_nextRowOffset_fID == NULL) {
return;
}
} }
static cmsBool _getHeaderInfo(cmsHPROFILE pf, jbyte* pBuffer, jint bufferSize) static cmsBool _getHeaderInfo(cmsHPROFILE pf, jbyte* pBuffer, jint bufferSize)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册