Set<PrimitiveType>ArrayRegion Routines - SetByteArrayRegion
void Set<PrimitiveType>ArrayRegion(JNIEnv *env, ArrayType array, jsize start, jsize len, NativeType *buf); (SetByteArrayRegion)
A family of functions that copies back a region of a primitive array from a buffer.
The following table describes the specific primitive array element accessors. You should make the following replacements: (SetByteArrayRegion)
- Replace Set<PrimitiveType>ArrayRegion 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.Table 4-13a Set<PrimitiveType>ArrayRegion Family of Array Accessor Routines
LINKAGE of SetByteArrayRegion
Indices in the JNIEnv interface function table.
Table 4-13b Set<PrimitiveType>ArrayRegion Family of Array Accessor Routines
PARAMETERS of SetByteArrayRegion
env: the JNI interface pointer.array: a Java array.start: the starting index.len: the number of elements to be copied.buf: the source buffer.THROWS:
ArrayIndexOutOfBoundsException: if one of the indexes in the region is not valid.
Example of SetByteArrayRegion
case 'B': {
jbyte* bufferArray = reinterpret_cast<jbyte*>(AgentBase::GetMemoryManager()
.Allocate(sizeof(jbyte)*values JDWP_FILE_LINE));
AgentAutoFree scavenger(bufferArray JDWP_FILE_LINE);
for (int i = 0; i < values; i++) {
value = m_cmdParser->command.ReadUntaggedValue(jni, JDWP_TAG_BYTE);
JDWP_TRACE_DATA("SetValues: set: index=" << i
<< ", value=(byte)" << value.b);
bufferArray[i] = value.b;
}
jni->SetByteArrayRegion(static_cast<jbyteArray>(arrayObject), firstIndex, values, bufferArray);
break;
}