diff --git a/build.sbt b/build.sbt index b7bbb73..54d85fc 100644 --- a/build.sbt +++ b/build.sbt @@ -1,7 +1,7 @@ import Dependencies._ ThisBuild / scalaVersion := "2.13.15" -ThisBuild / version := "0.0.12" +ThisBuild / version := "0.0.14" ThisBuild / versionScheme := Some("early-semver") ThisBuild / organization := "io.citrine" ThisBuild / organizationName := "Citrine Informatics" diff --git a/src/native/NativeECOS.c b/src/native/NativeECOS.c index 408390c..89f6af2 100644 --- a/src/native/NativeECOS.c +++ b/src/native/NativeECOS.c @@ -116,6 +116,18 @@ JNIEXPORT jint JNICALL Java_io_citrine_ecos_NativeECOS_EcosSolve(JNIEnv *env, jo ECOS_cleanup(wspace, 0); } + /* JNI_ABORT: inputs are read-only, discard any copy without writing back. */ + (*env)->ReleaseIntArrayElements(env, q, qPtr, JNI_ABORT); + (*env)->ReleaseDoubleArrayElements(env, Gpr, GprPtr, JNI_ABORT); + (*env)->ReleaseIntArrayElements(env, Gjc, GjcPtr, JNI_ABORT); + (*env)->ReleaseIntArrayElements(env, Gir, GirPtr, JNI_ABORT); + (*env)->ReleaseDoubleArrayElements(env, Apr, AprPtr, JNI_ABORT); + (*env)->ReleaseIntArrayElements(env, Ajc, AjcPtr, JNI_ABORT); + (*env)->ReleaseIntArrayElements(env, Air, AirPtr, JNI_ABORT); + (*env)->ReleaseDoubleArrayElements(env, c, cPtr, JNI_ABORT); + (*env)->ReleaseDoubleArrayElements(env, h, hPtr, JNI_ABORT); + (*env)->ReleaseDoubleArrayElements(env, b, bPtr, JNI_ABORT); + return exitflag; }