Get<PrimitiveType>ArrayElements Routines - GetBooleanArrayElements
NativeType
*Get<PrimitiveType>ArrayElements(JNIEnv *env,ArrayType array, jboolean *isCopy);
A family of functions that returns the body of the primitive array. The result is valid until the correspondingRelease
<PrimitiveType>ArrayElements() function is called. Since the returned array may be a copy of the Java array, changes made to the returned array will not necessarily be reflected in the original array until Release<PrimitiveType>ArrayElements() is called. (GetBooleanArrayElements)
If
isCopy is not NULL, then *isCopy is set to JNI_TRUE if a copy is made; or it is set to JNI_FALSE if no copy is made.
The following table describes the specific primitive array element accessors. You should make the following substitutions: (GetBooleanArrayElements)
- Replace Get<PrimitiveType>ArrayElements with one of the actual primitive element accessor routine names from the table.
- Replace ArrayType with the corresponding array type.
- Replace NativeType with the corresponding native type for that routine.
Regardless of how boolean arrays are represented in the Java VM,
GetBooleanArrayElements() always returns a pointer tojbooleans, with each byte denoting an element (the unpacked representation). All arrays of other types are guaranteed to be contiguous in memory.
Table 4-9a Get<PrimitiveType>ArrayElements Family of Accessor Routines
LINKAGE:
Indices in the JNIEnv interface function table.
Table 4-9b Get<PrimitiveType>ArrayElements Family of Accessor Routines
PARAMETERS of GetBooleanArrayElements
env: the JNI interface pointer.array: a Java string object.isCopy: a pointer to a boolean.RETURNS of GetBooleanArrayElements
Returns a pointer to the array elements, or
NULL if the operation fails.
Example of GetBooleanArrayElements
EDIT: This is how I convert the
boolean array to unsigned char in C: jboolean *element = (*env)->GetBooleanArrayElements(env,chosen_packet,0);
for(j = 0; j < sz; j++)
src_pkt[j] = (unsigned char)element[j];
This src_pkt is acted upon and then I convert it back to
jboolean .
EDIT2: This is how I convert the unsigned char array back to jboolean:
jbooleanArray arr = (*env)->NewBooleanArray(env,sz);
(*env)->SetBooleanArrayRegion(env,arr,0,sz,src_pkts);
(*env)->DeleteLocalRef(env,arr);