< prev index next >

src/java.desktop/macosx/native/libawt_lwawt/font/AWTStrike.m

Print this page

        

*** 312,337 **** AWTStrike *awtStrike = (AWTStrike *)jlong_to_ptr(awtStrikePtr); jlong *glyphInfos = (*env)->GetPrimitiveArrayCritical(env, glyphInfoLongArray, NULL); ! if (glyphInfos != NULL) { jint *rawGlyphCodes = (*env)->GetPrimitiveArrayCritical(env, glyphCodes, NULL); ! ! 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); } JNF_COCOA_EXIT(env); } /* --- 312,342 ---- AWTStrike *awtStrike = (AWTStrike *)jlong_to_ptr(awtStrikePtr); jlong *glyphInfos = (*env)->GetPrimitiveArrayCritical(env, glyphInfoLongArray, NULL); ! jint *rawGlyphCodes = (*env)->GetPrimitiveArrayCritical(env, glyphCodes, NULL); ! @try { ! if (rawGlyphCodes != NULL && glyphInfos != NULL) { CGGlyphImages_GetGlyphImagePtrs(glyphInfos, awtStrike, rawGlyphCodes, len); ! } ! } ! @finally { ! if (rawGlyphCodes != NULL) { (*env)->ReleasePrimitiveArrayCritical(env, glyphCodes, rawGlyphCodes, JNI_ABORT); } + if (glyphInfos != NULL) { // 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); } /*
< prev index next >