📄 jni-arrays.c
字号:
case JNI_ABORT: KFREE(elems); break; default: break; } } END_EXCEPTION_HANDLING();}voidKaffeJNI_ReleaseShortArrayElements(JNIEnv* env UNUSED, jshortArray arr, jshort* elems, jint mode){ jshortArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (elems != unhand_array((HArrayOfShort*)arr_local)->body) { switch (mode) { case JNI_COMMIT: memcpy(unhand_array((HArrayOfShort*)arr_local)->body, elems, obj_length((HArrayOfShort*)arr_local) * sizeof(jshort)); break; case 0: memcpy(unhand_array((HArrayOfShort*)arr_local)->body, elems, obj_length((HArrayOfShort*)arr_local) * sizeof(jshort)); KFREE(elems); break; case JNI_ABORT: KFREE(elems); break; default: break; } } END_EXCEPTION_HANDLING();}voidKaffeJNI_ReleaseIntArrayElements(JNIEnv* env UNUSED, jintArray arr, jint* elems, jint mode){ jintArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (elems != unhand_array((HArrayOfInt*)arr_local)->body) { switch (mode) { case JNI_COMMIT: memcpy(unhand_array((HArrayOfInt*)arr_local)->body, elems, obj_length((HArrayOfInt*)arr_local) * sizeof(jint)); break; case 0: memcpy(unhand_array((HArrayOfInt*)arr_local)->body, elems, obj_length((HArrayOfInt*)arr_local) * sizeof(jint)); KFREE(elems); break; case JNI_ABORT: KFREE(elems); break; default: break; } } END_EXCEPTION_HANDLING();}voidKaffeJNI_ReleaseLongArrayElements(JNIEnv* env UNUSED, jlongArray arr, jlong* elems, jint mode){ jlongArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (elems != unhand_array((HArrayOfLong*)arr_local)->body) { switch (mode) { case JNI_COMMIT: memcpy(unhand_array((HArrayOfLong*)arr_local)->body, elems, obj_length((HArrayOfLong*)arr_local) * sizeof(jlong)); break; case 0: memcpy(unhand_array((HArrayOfLong*)arr_local)->body, elems, obj_length((HArrayOfLong*)arr_local) * sizeof(jlong)); KFREE(elems); break; case JNI_ABORT: KFREE(elems); break; default: break; } } END_EXCEPTION_HANDLING();}voidKaffeJNI_ReleaseFloatArrayElements(JNIEnv* env UNUSED, jfloatArray arr, jfloat* elems, jint mode){ jfloatArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (elems != unhand_array((HArrayOfFloat*)arr_local)->body) { switch (mode) { case JNI_COMMIT: memcpy(unhand_array((HArrayOfFloat*)arr_local)->body, elems, obj_length((HArrayOfFloat*)arr_local) * sizeof(jfloat)); break; case 0: memcpy(unhand_array((HArrayOfFloat*)arr_local)->body, elems, obj_length((HArrayOfFloat*)arr_local) * sizeof(jfloat)); KFREE(elems); break; case JNI_ABORT: KFREE(elems); break; default: break; } } END_EXCEPTION_HANDLING();}voidKaffeJNI_ReleaseDoubleArrayElements(JNIEnv* env UNUSED, jdoubleArray arr, jdouble* elems, jint mode){ jdoubleArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (elems != unhand_array((HArrayOfDouble*)arr_local)->body) { switch (mode) { case JNI_COMMIT: memcpy(unhand_array((HArrayOfDouble*)arr_local)->body, elems, obj_length((HArrayOfDouble*)arr_local) * sizeof(jdouble)); break; case 0: memcpy(unhand_array((HArrayOfDouble*)arr_local)->body, elems, obj_length((HArrayOfDouble*)arr_local) * sizeof(jdouble)); KFREE(elems); break; case JNI_ABORT: KFREE(elems); break; default: break; } } END_EXCEPTION_HANDLING();}voidKaffeJNI_GetBooleanArrayRegion(JNIEnv* env UNUSED, jbooleanArray arr, jsize start, jsize len, jboolean* data){ jbooleanArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (start >= obj_length((HArrayOfBoolean*)arr_local) || start + len > obj_length((HArrayOfBoolean*)arr_local)) { throwException(ArrayIndexOutOfBoundsException); } memcpy(data, &unhand_array((HArrayOfBoolean*)arr_local)->body[start], len * sizeof(jboolean)); END_EXCEPTION_HANDLING();}voidKaffeJNI_GetByteArrayRegion(JNIEnv* env UNUSED, jbyteArray arr, jsize start, jsize len, jbyte* data){ jbyteArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (start >= obj_length((HArrayOfByte*)arr_local) || start + len > obj_length((HArrayOfByte*)arr_local)) { throwException(ArrayIndexOutOfBoundsException); } memcpy(data, &unhand_array((HArrayOfByte*)arr_local)->body[start], len * sizeof(jbyte)); END_EXCEPTION_HANDLING();}voidKaffeJNI_GetCharArrayRegion(JNIEnv* env UNUSED, jcharArray arr, jsize start, jsize len, jchar* data){ jcharArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (start >= obj_length((HArrayOfChar*)arr_local) || start + len > obj_length((HArrayOfChar*)arr_local)) { throwException(ArrayIndexOutOfBoundsException); } memcpy(data, &unhand_array((HArrayOfChar*)arr_local)->body[start], len * sizeof(jchar)); END_EXCEPTION_HANDLING();}voidKaffeJNI_GetShortArrayRegion(JNIEnv* env UNUSED, jshortArray arr, jsize start, jsize len, jshort* data){ jshortArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (start >= obj_length((HArrayOfShort*)arr_local) || start + len > obj_length((HArrayOfShort*)arr_local)) { throwException(ArrayIndexOutOfBoundsException); } memcpy(data, &unhand_array((HArrayOfShort*)arr_local)->body[start], len * sizeof(jshort)); END_EXCEPTION_HANDLING();}voidKaffeJNI_GetIntArrayRegion(JNIEnv* env UNUSED, jintArray arr, jsize start, jsize len, jint* data){ jintArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (start >= obj_length((HArrayOfInt*)arr_local) || start + len > obj_length((HArrayOfInt*)arr_local)) { throwException(ArrayIndexOutOfBoundsException); } memcpy(data, &unhand_array((HArrayOfInt*)arr_local)->body[start], len * sizeof(jint)); END_EXCEPTION_HANDLING();}voidKaffeJNI_GetLongArrayRegion(JNIEnv* env UNUSED, jlongArray arr, jsize start, jsize len, jlong* data){ jlongArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (start >= obj_length((HArrayOfLong*)arr_local) || start + len > obj_length((HArrayOfLong*)arr_local)) { throwException(ArrayIndexOutOfBoundsException); } memcpy(data, &unhand_array((HArrayOfLong*)arr_local)->body[start], len * sizeof(jlong)); END_EXCEPTION_HANDLING();}voidKaffeJNI_GetFloatArrayRegion(JNIEnv* env UNUSED, jfloatArray arr, jsize start, jsize len, jfloat* data){ jfloatArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (start >= obj_length((HArrayOfFloat*)arr_local) || start + len > obj_length((HArrayOfFloat*)arr_local)) { throwException(ArrayIndexOutOfBoundsException); } memcpy(data, &unhand_array((HArrayOfFloat*)arr_local)->body[start], len * sizeof(jfloat)); END_EXCEPTION_HANDLING();}voidKaffeJNI_GetDoubleArrayRegion(JNIEnv* env UNUSED, jdoubleArray arr, jsize start, jsize len, jdouble* data){ jdoubleArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (start >= obj_length((HArrayOfDouble*)arr_local) || start + len > obj_length((HArrayOfDouble*)arr_local)) { throwException(ArrayIndexOutOfBoundsException); } memcpy(data, &unhand_array((HArrayOfDouble*)arr_local)->body[start], len * sizeof(jdouble)); END_EXCEPTION_HANDLING();}voidKaffeJNI_SetBooleanArrayRegion(JNIEnv* env UNUSED, jbooleanArray arr, jsize start, jsize len, jboolean* data){ jbooleanArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (start >= obj_length((HArrayOfBoolean*)arr_local) || start+len > obj_length((HArrayOfBoolean*)arr_local)) { throwException(ArrayIndexOutOfBoundsException); } memcpy(&unhand_array((HArrayOfBoolean*)arr_local)->body[start], data, len * sizeof(jboolean)); END_EXCEPTION_HANDLING();}voidKaffeJNI_SetByteArrayRegion(JNIEnv* env UNUSED, jbyteArray arr, jsize start, jsize len, jbyte* data){ jbyteArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (start >= obj_length((HArrayOfByte*)arr_local) || start+len > obj_length((HArrayOfByte*)arr_local)) { throwException(ArrayIndexOutOfBoundsException); } memcpy(&unhand_array((HArrayOfByte*)arr_local)->body[start], data, len * sizeof(jbyte)); END_EXCEPTION_HANDLING();}voidKaffeJNI_SetCharArrayRegion(JNIEnv* env UNUSED, jcharArray arr, jsize start, jsize len, jchar* data){ jcharArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (start >= obj_length((HArrayOfChar*)arr_local) || start+len > obj_length((HArrayOfChar*)arr_local)) { throwException(ArrayIndexOutOfBoundsException); } memcpy(&unhand_array((HArrayOfChar*)arr_local)->body[start], data, len * sizeof(jchar)); END_EXCEPTION_HANDLING();}voidKaffeJNI_SetShortArrayRegion(JNIEnv* env UNUSED, jshortArray arr, jsize start, jsize len, jshort* data){ jshortArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (start >= obj_length((HArrayOfShort*)arr_local) || start+len > obj_length((HArrayOfShort*)arr_local)) { throwException(ArrayIndexOutOfBoundsException); } memcpy(&unhand_array((HArrayOfShort*)arr_local)->body[start], data, len * sizeof(jshort)); END_EXCEPTION_HANDLING();}voidKaffeJNI_SetIntArrayRegion(JNIEnv* env UNUSED, jintArray arr, jsize start, jsize len, jint* data){ jintArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (start >= obj_length((HArrayOfInt*)arr_local) || start+len > obj_length((HArrayOfInt*)arr_local)) { throwException(ArrayIndexOutOfBoundsException); } memcpy(&unhand_array((HArrayOfInt*)arr_local)->body[start], data, len * sizeof(jint)); END_EXCEPTION_HANDLING();}voidKaffeJNI_SetLongArrayRegion(JNIEnv* env UNUSED, jlongArray arr, jsize start, jsize len, jlong* data){ jlongArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (start >= obj_length((HArrayOfLong*)arr_local) || start+len > obj_length((HArrayOfLong*)arr_local)) { throwException(ArrayIndexOutOfBoundsException); } memcpy(&unhand_array((HArrayOfLong*)arr_local)->body[start], data, len * sizeof(jlong)); END_EXCEPTION_HANDLING();}voidKaffeJNI_SetFloatArrayRegion(JNIEnv* env UNUSED, jfloatArray arr, jsize start, jsize len, jfloat* data){ jfloatArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (start >= obj_length((HArrayOfFloat*)arr_local) || start+len > obj_length((HArrayOfFloat*)arr_local)) { throwException(ArrayIndexOutOfBoundsException); } memcpy(&unhand_array((HArrayOfFloat*)arr_local)->body[start], data, len * sizeof(jfloat)); END_EXCEPTION_HANDLING();}voidKaffeJNI_SetDoubleArrayRegion(JNIEnv* env UNUSED, jdoubleArray arr, jsize start, jsize len, jdouble* data){ jdoubleArray arr_local; BEGIN_EXCEPTION_HANDLING_VOID(); arr_local = unveil(arr); if (start >= obj_length((HArrayOfDouble*)arr_local) || start+len > obj_length((HArrayOfDouble*)arr_local)) { throwException(ArrayIndexOutOfBoundsException); } memcpy(&unhand_array((HArrayOfDouble*)arr_local)->body[start], data, len * sizeof(jdouble)); END_EXCEPTION_HANDLING();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -