in src/main/c/h3-java/src/jniapi.c [375:402]
JNIEXPORT void JNICALL Java_com_uber_h3core_NativeMethods_gridDiskDistances(
JNIEnv *env, jobject thiz, jlong h3, jint k, jlongArray results,
jintArray distances) {
H3Error err = E_SUCCESS;
bool isOom = false;
jlong *resultsElements = (**env).GetLongArrayElements(env, results, 0);
if (resultsElements != NULL) {
jint *distancesElements =
(**env).GetIntArrayElements(env, distances, 0);
if (distancesElements != NULL) {
// if sz is too small, bad things will happen
err = gridDiskDistances(h3, k, resultsElements, distancesElements);
(**env).ReleaseLongArrayElements(env, results, resultsElements, 0);
} else {
isOom = true;
}
(**env).ReleaseIntArrayElements(env, distances, distancesElements, 0);
} else {
isOom = true;
}
if (isOom) {
ThrowOutOfMemoryError(env);
} else if (err) {
ThrowH3Exception(env, err);
}
}