From beef7a6745e8c86c035a81317e18a3717ae7e106 Mon Sep 17 00:00:00 2001 From: Phil Race Date: Fri, 21 Mar 2014 11:33:52 -0700 Subject: [PATCH] 8034113: [parfait] JNI exception pending in jdk/src/macosx/native/sun/font/AWTStrike.m Reviewed-by: jgodinez, serb --- jdk/src/macosx/native/sun/font/AWTStrike.m | 27 ++++++++++++++-------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/jdk/src/macosx/native/sun/font/AWTStrike.m b/jdk/src/macosx/native/sun/font/AWTStrike.m index 6e4b4291cbb..2425ec67f88 100644 --- a/jdk/src/macosx/native/sun/font/AWTStrike.m +++ b/jdk/src/macosx/native/sun/font/AWTStrike.m @@ -127,6 +127,9 @@ GetTxFromDoubles(JNIEnv *env, jdoubleArray txArray) } jdouble *txPtr = (*env)->GetPrimitiveArrayCritical(env, txArray, NULL); + if (txPtr == NULL) { + return CGAffineTransformIdentity; + } CGAffineTransform tx = CGAffineTransformMake(txPtr[0], txPtr[1], txPtr[2], @@ -311,18 +314,22 @@ JNF_COCOA_ENTER(env); jlong *glyphInfos = (*env)->GetPrimitiveArrayCritical(env, glyphInfoLongArray, NULL); - jint *rawGlyphCodes = - (*env)->GetPrimitiveArrayCritical(env, glyphCodes, NULL); + if (glyphInfos != NULL) { + jint *rawGlyphCodes = + (*env)->GetPrimitiveArrayCritical(env, glyphCodes, NULL); - CGGlyphImages_GetGlyphImagePtrs(glyphInfos, awtStrike, - rawGlyphCodes, len); + if (rawGlyphCodes != NULL) { + CGGlyphImages_GetGlyphImagePtrs(glyphInfos, awtStrike, + rawGlyphCodes, len); - (*env)->ReleasePrimitiveArrayCritical(env, glyphCodes, - rawGlyphCodes, JNI_ABORT); - // Do not use JNI_COMMIT, as that will not free the buffer copy - // when +ProtectJavaHeap is on. - (*env)->ReleasePrimitiveArrayCritical(env, glyphInfoLongArray, - glyphInfos, 0); + (*env)->ReleasePrimitiveArrayCritical(env, glyphCodes, + rawGlyphCodes, JNI_ABORT); + } + // Do not use JNI_COMMIT, as that will not free the buffer copy + // when +ProtectJavaHeap is on. + (*env)->ReleasePrimitiveArrayCritical(env, glyphInfoLongArray, + glyphInfos, 0); + } JNF_COCOA_EXIT(env); }