| 487 | } |
| 488 | |
| 489 | Valdi::BytesView toByteArray(JavaEnv /*env*/, jbyteArray array) { |
| 490 | auto jLength = JavaEnv::accessEnvRet([&](JNIEnv& env) -> jint { return env.GetArrayLength(array); }); |
| 491 | |
| 492 | auto bytes = Valdi::makeShared<Valdi::Bytes>(); |
| 493 | bytes->resize(static_cast<size_t>(jLength)); |
| 494 | |
| 495 | JavaEnv::accessEnv([&](JNIEnv& env) { |
| 496 | return env.GetByteArrayRegion(array, 0, jLength, reinterpret_cast<jbyte*>(bytes->data())); |
| 497 | }); |
| 498 | |
| 499 | return Valdi::BytesView(bytes); |
| 500 | } |
| 501 | |
| 502 | JavaObject toByteBuffer(JavaEnv env, void* data, size_t size) { |
| 503 | auto object = JavaEnv::accessEnvRetRef([&](JNIEnv& env) -> auto { return env.NewDirectByteBuffer(data, size); }); |