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

Reply via email to