Index: modules/awt/src/main/native/gl/windows/GDIBlitter.cpp =================================================================== --- modules/awt/src/main/native/gl/windows/GDIBlitter.cpp (revision 450848) +++ modules/awt/src/main/native/gl/windows/GDIBlitter.cpp (working copy) @@ -83,6 +83,7 @@ if(matrix != NULL){ jdouble * mtrx = (jdouble *)env->GetPrimitiveArrayCritical(matrix, 0); + jdouble * old_mtrx = mtrx; transform.eM11 = (FLOAT)(*mtrx++); transform.eM12 = (FLOAT)(*mtrx++); @@ -91,7 +92,7 @@ transform.eDx = (FLOAT)(*mtrx++); transform.eDy = (FLOAT)(*mtrx); - env->ReleasePrimitiveArrayCritical(matrix, mtrx, 0); + env->ReleasePrimitiveArrayCritical(matrix, old_mtrx, 0); SetGraphicsMode(dstSurf->gi->hdc, GM_ADVANCED); GetWorldTransform(dstSurf->gi->hdc, ¤tTransform); @@ -200,6 +201,7 @@ if(matrix != NULL){ jdouble * mtrx = (jdouble *)env->GetPrimitiveArrayCritical(matrix, 0); + jdouble * old_mtrx = mtrx; transform.eM11 = (FLOAT)(*mtrx++); transform.eM12 = (FLOAT)(*mtrx++); @@ -208,7 +210,7 @@ transform.eDx = (FLOAT)(*mtrx++); transform.eDy = (FLOAT)(*mtrx); - env->ReleasePrimitiveArrayCritical(matrix, mtrx, 0); + env->ReleasePrimitiveArrayCritical(matrix, old_mtrx, 0); SetGraphicsMode(dstSurf->gi->hdc, GM_ADVANCED); GetWorldTransform(dstSurf->gi->hdc, ¤tTransform); @@ -257,6 +259,7 @@ if(matrix != NULL){ jdouble * mtrx = (jdouble *)env->GetPrimitiveArrayCritical(matrix, 0); + jdouble * old_mtrx = mtrx; transform.eM11 = (FLOAT)(*mtrx++); transform.eM12 = (FLOAT)(*mtrx++); @@ -265,7 +268,7 @@ transform.eDx = (FLOAT)(*mtrx++); transform.eDy = (FLOAT)(*mtrx); - env->ReleasePrimitiveArrayCritical(matrix, mtrx, 0); + env->ReleasePrimitiveArrayCritical(matrix, old_mtrx, 0); SetGraphicsMode(dstSurf->gi->hdc, GM_ADVANCED); GetWorldTransform(dstSurf->gi->hdc, ¤tTransform);