r26869 - trunk/contrib/fec/src/csrc

[email protected] Thu, 16 Apr 2009 01:53:59 +0000
Newsgroups gmane.network.freenet.cvs
Message-ID <[email protected]>
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);