Author: j16sdiz
Date: 2009-04-16 01:53:58 +0000 (Thu, 16 Apr 2009)
New Revision: 26869
Modified:
trunk/contrib/fec/src/csrc/fec16-jinterf.c
trunk/contrib/fec/src/csrc/fec8-jinterf.c
Log:
Use GetByteArrayElements() not GetPrimitiveArrayCritical()
JNI Specification require "Inside a critical region, native
code must not call other JNI functions", The SetObjectArrayElement()
calls in between violated this rule.
Modified: trunk/contrib/fec/src/csrc/fec16-jinterf.c
===================================================================
--- trunk/contrib/fec/src/csrc/fec16-jinterf.c 2009-04-16 01:53:44 UTC (rev
26868)
+++ trunk/contrib/fec/src/csrc/fec16-jinterf.c 2009-04-16 01:53:58 UTC (rev
26869)
@@ -64,7 +64,7 @@
return; /* exception occured */
}
- inarr[i] = (*env)->GetPrimitiveArrayCritical(env, inArr[i], 0);
+ inarr[i] = (*env)->GetByteArrayElements(env, inArr[i], 0);
if (inarr[i] == NULL) {
return; /* exception occured */
}
@@ -77,7 +77,7 @@
return; /* exception occured */
}
- retarr[i] = (*env)->GetPrimitiveArrayCritical(env, retArr[i],
0);
+ retarr[i] = (*env)->GetByteArrayElements(env, retArr[i], 0);
if (retarr[i] == NULL) {
return; /* exception occured */
}
@@ -91,12 +91,12 @@
for (i=0;i<k;i++) {
inarr[i] -= localSrcOff[i];
- (*env)->ReleasePrimitiveArrayCritical(env, inArr[i], inarr[i],
0);
+ (*env)->ReleaseByteArrayElements(env, inArr[i], inarr[i], 0);
}
for (i=0;i<numRet;i++) {
retarr[i] -= localRetOff[i];
- (*env)->ReleasePrimitiveArrayCritical(env, retArr[i],
retarr[i], 0);
+ (*env)->ReleaseByteArrayElements(env, retArr[i], retarr[i], 0);
}
(*env)->ReleaseIntArrayElements(env, srcOff, localSrcOff, 0);
@@ -157,7 +157,7 @@
if (inArr[i] == NULL) {
return; /* exception occured */
}
- inarr[i] = (*env)->GetPrimitiveArrayCritical(env, inArr[i], 0);
+ inarr[i] = (*env)->GetByteArrayElements(env, inArr[i], 0);
if (inarr[i] == NULL) {
return; /* exception occured */
}
@@ -172,7 +172,7 @@
}
for (i = 0; i < k; i++) {
- (*env)->ReleasePrimitiveArrayCritical(env, inArr[i], inarr[i],
0);
+ (*env)->ReleaseByteArrayElements(env, inArr[i], inarr[i], 0);
}
(*env)->ReleaseIntArrayElements(env, whichdata, localWhich, 0);
Modified: trunk/contrib/fec/src/csrc/fec8-jinterf.c
===================================================================
--- trunk/contrib/fec/src/csrc/fec8-jinterf.c 2009-04-16 01:53:44 UTC (rev
26868)
+++ trunk/contrib/fec/src/csrc/fec8-jinterf.c 2009-04-16 01:53:58 UTC (rev
26869)
@@ -64,7 +64,7 @@
return; /* exception occured */
}
- inarr[i] = (*env)->GetPrimitiveArrayCritical(env, inArr[i], 0);
+ inarr[i] = (*env)->GetByteArrayElements(env, inArr[i], 0);
if (inarr[i] == NULL) {
return; /* exception occured */
}
@@ -77,7 +77,7 @@
return; /* exception occured */
}
- retarr[i] = (*env)->GetPrimitiveArrayCritical(env, retArr[i],
0);
+ retarr[i] = (*env)->GetByteArrayElements(env, retArr[i], 0);
if (retarr[i] == NULL) {
return; /* exception occured */
}
@@ -91,12 +91,12 @@
for (i=0;i<k;i++) {
inarr[i] -= localSrcOff[i];
- (*env)->ReleasePrimitiveArrayCritical(env, inArr[i], inarr[i],
0);
+ (*env)->ReleaseByteArrayElements(env, inArr[i], inarr[i], 0);
}
for (i=0;i<numRet;i++) {
retarr[i] -= localRetOff[i];
- (*env)->ReleasePrimitiveArrayCritical(env, retArr[i],
retarr[i], 0);
+ (*env)->ReleaseByteArrayElements(env, retArr[i], retarr[i], 0);
}
(*env)->ReleaseIntArrayElements(env, srcOff, localSrcOff, 0);
@@ -157,7 +157,7 @@
if (inArr[i] == NULL) {
return; /* exception occured */
}
- inarr[i] = (*env)->GetPrimitiveArrayCritical(env, inArr[i], 0);
+ inarr[i] = (*env)->GetByteArrayElements(env, inArr[i], 0);
if (inarr[i] == NULL) {
return; /* exception occured */
}
@@ -172,7 +172,7 @@
}
for (i = 0; i < k; i++) {
- (*env)->ReleasePrimitiveArrayCritical(env, inArr[i], inarr[i],
0);
+ (*env)->ReleaseByteArrayElements(env, inArr[i], inarr[i], 0);
}
(*env)->ReleaseIntArrayElements(env, whichdata, localWhich, 0);
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs