# HG changeset patch # User bae # Date 1293103652 -10800 # Node ID bac6e958f08e9f0161a1289ac4248191adfe9440 # Parent 3ffe25b53aad4e25bc0d4706e0c17f8edfd97f73 7002627: JNI Critical Arrays should be released with the original (unmodified) pointer Reviewed-by: jgodinez, prr diff -r 3ffe25b53aad -r bac6e958f08e jdk/src/share/native/sun/java2d/pipe/BufferedMaskBlit.c --- a/jdk/src/share/native/sun/java2d/pipe/BufferedMaskBlit.c Wed Dec 22 13:49:23 2010 -0800 +++ b/jdk/src/share/native/sun/java2d/pipe/BufferedMaskBlit.c Thu Dec 23 14:27:32 2010 +0300 @@ -119,7 +119,8 @@ PtrCoord(srcInfo.rasBase, srcInfo.bounds.x1, srcInfo.pixelStride, srcInfo.bounds.y1, srcInfo.scanStride); - unsigned char *pMask = + unsigned char *pMask, *pMaskAlloc; + pMask = pMaskAlloc = (*env)->GetPrimitiveArrayCritical(env, maskArray, 0); if (pMask == NULL) { J2dRlsTraceLn(J2D_TRACE_ERROR, @@ -274,7 +275,7 @@ bpos += width * height * sizeof(jint); (*env)->ReleasePrimitiveArrayCritical(env, maskArray, - pMask, JNI_ABORT); + pMaskAlloc, JNI_ABORT); } SurfaceData_InvokeRelease(env, srcOps, &srcInfo); }