7002627: JNI Critical Arrays should be released with the original (unmodified) pointer

Reviewed-by: jgodinez, prr
This commit is contained in:
Andrew Brygin 2010-12-23 14:27:32 +03:00
parent 01d8aee41b
commit 154dedcd10

View File

@ -119,7 +119,8 @@ Java_sun_java2d_pipe_BufferedMaskBlit_enqueueTile
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 @@ Java_sun_java2d_pipe_BufferedMaskBlit_enqueueTile
bpos += width * height * sizeof(jint);
(*env)->ReleasePrimitiveArrayCritical(env, maskArray,
pMask, JNI_ABORT);
pMaskAlloc, JNI_ABORT);
}
SurfaceData_InvokeRelease(env, srcOps, &srcInfo);
}