jni 0.2.2 → 0.2.3
raw patch · 4 files changed
+94/−61 lines, 4 files
Files
- README.md +3/−0
- jni.cabal +1/−1
- src/Foreign/JNI.c +74/−60
- src/Foreign/JNI.hs +16/−0
README.md view
@@ -1,5 +1,8 @@ # jni: Complete JNI raw bindings +[](http://stackage.org/lts/package/jni)+[](http://stackage.org/nightly/package/jni)+ This package includes Haskell bindings to the [Java Native Interface (JNI)][jni]. This package offers mostly unopinionated low-level bindings, which closely maps to the C API. For
jni.cabal view
@@ -1,5 +1,5 @@ name: jni-version: 0.2.2+version: 0.2.3 synopsis: Complete JNI raw bindings. description: Please see README.md. homepage: https://github.com/tweag/inline-java/tree/master/jni#readme
src/Foreign/JNI.c view
@@ -336,107 +336,121 @@ } -void inline_c_Foreign_JNI_53_1fc0f64f3f314012d49ffbd906fd558d03aef37d(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) {+jobject inline_c_Foreign_JNI_53_8c39298123ed5c8656bc5277898eef8b54389907(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2) {+return (+ (*env_inline_c_0)->NewGlobalRef(env_inline_c_1,+ obj_inline_c_2) );+}+++void inline_c_Foreign_JNI_54_03477bcc772fad6c91dec2c4c759fcb4fc07724e(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2) {++ (*env_inline_c_0)->DeleteGlobalRef(env_inline_c_1,+ obj_inline_c_2); +}+++void inline_c_Foreign_JNI_55_1fc0f64f3f314012d49ffbd906fd558d03aef37d(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) { (*env_inline_c_0)->CallVoidMethodA(env_inline_c_1, obj_inline_c_2, method_inline_c_3, cargs_inline_c_4) ; } -jobject inline_c_Foreign_JNI_54_203a086f6ff15893a2417732fde0904a88dd4307(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) {+jobject inline_c_Foreign_JNI_56_203a086f6ff15893a2417732fde0904a88dd4307(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) { return ( (*env_inline_c_0)->CallObjectMethodA(env_inline_c_1, obj_inline_c_2, method_inline_c_3, cargs_inline_c_4) ); } -jboolean inline_c_Foreign_JNI_55_b729da20539bd62f9d8b8e8579dbf42bbafc76c4(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) {+jboolean inline_c_Foreign_JNI_57_b729da20539bd62f9d8b8e8579dbf42bbafc76c4(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) { return ( (*env_inline_c_0)->CallBooleanMethodA(env_inline_c_1, obj_inline_c_2, method_inline_c_3, cargs_inline_c_4) ); } -jbyte inline_c_Foreign_JNI_56_4e4bdbfc154de6ffe6eb562e1edfcbb529c275e8(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) {+jbyte inline_c_Foreign_JNI_58_4e4bdbfc154de6ffe6eb562e1edfcbb529c275e8(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) { return ( (*env_inline_c_0)->CallByteMethodA(env_inline_c_1, obj_inline_c_2, method_inline_c_3, cargs_inline_c_4) ); } -jchar inline_c_Foreign_JNI_57_5e000da030371e4db09c808934e3e5f504eda6c9(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) {+jchar inline_c_Foreign_JNI_59_5e000da030371e4db09c808934e3e5f504eda6c9(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) { return ( (*env_inline_c_0)->CallCharMethodA(env_inline_c_1, obj_inline_c_2, method_inline_c_3, cargs_inline_c_4) ); } -jshort inline_c_Foreign_JNI_58_516aded3c2f638c87a12e56d246bdcea1c7e1a47(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) {+jshort inline_c_Foreign_JNI_60_516aded3c2f638c87a12e56d246bdcea1c7e1a47(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) { return ( (*env_inline_c_0)->CallShortMethodA(env_inline_c_1, obj_inline_c_2, method_inline_c_3, cargs_inline_c_4) ); } -jint inline_c_Foreign_JNI_59_58b123994733ee132cc23af0e5a7da34ef37f584(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) {+jint inline_c_Foreign_JNI_61_58b123994733ee132cc23af0e5a7da34ef37f584(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) { return ( (*env_inline_c_0)->CallIntMethodA(env_inline_c_1, obj_inline_c_2, method_inline_c_3, cargs_inline_c_4) ); } -jlong inline_c_Foreign_JNI_60_46357804ee4af723721f601341c61ac4eecad475(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) {+jlong inline_c_Foreign_JNI_62_46357804ee4af723721f601341c61ac4eecad475(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) { return ( (*env_inline_c_0)->CallLongMethodA(env_inline_c_1, obj_inline_c_2, method_inline_c_3, cargs_inline_c_4) ); } -jfloat inline_c_Foreign_JNI_61_75b26f9688a40ee63e314f73ee5f9563c48e02c0(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) {+jfloat inline_c_Foreign_JNI_63_75b26f9688a40ee63e314f73ee5f9563c48e02c0(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) { return ( (*env_inline_c_0)->CallFloatMethodA(env_inline_c_1, obj_inline_c_2, method_inline_c_3, cargs_inline_c_4) ); } -jdouble inline_c_Foreign_JNI_62_f33654d183f21d1a2c8ffc121684d4e60e273fa2(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) {+jdouble inline_c_Foreign_JNI_64_f33654d183f21d1a2c8ffc121684d4e60e273fa2(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject obj_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) { return ( (*env_inline_c_0)->CallDoubleMethodA(env_inline_c_1, obj_inline_c_2, method_inline_c_3, cargs_inline_c_4) ); } -void inline_c_Foreign_JNI_63_5e76a5cd24826d8a13100c53ae77823083465978(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jclass cls_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) {+void inline_c_Foreign_JNI_65_5e76a5cd24826d8a13100c53ae77823083465978(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jclass cls_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) { (*env_inline_c_0)->CallStaticVoidMethodA(env_inline_c_1, cls_inline_c_2, method_inline_c_3, cargs_inline_c_4) ; } -jobject inline_c_Foreign_JNI_64_6b65c20aae594d93c02434b3de002e443794ad14(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jclass cls_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) {+jobject inline_c_Foreign_JNI_66_6b65c20aae594d93c02434b3de002e443794ad14(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jclass cls_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) { return ( (*env_inline_c_0)->CallStaticObjectMethodA(env_inline_c_1, cls_inline_c_2, method_inline_c_3, cargs_inline_c_4) ); } -jboolean inline_c_Foreign_JNI_65_58bcbcce6c8bf92799bd1db44c288a7b0a260a36(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jclass cls_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) {+jboolean inline_c_Foreign_JNI_67_58bcbcce6c8bf92799bd1db44c288a7b0a260a36(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jclass cls_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) { return ( (*env_inline_c_0)->CallStaticBooleanMethodA(env_inline_c_1, cls_inline_c_2, method_inline_c_3, cargs_inline_c_4) ); } -jbyte inline_c_Foreign_JNI_66_1f0c41a419f29557514552df4d07022a006f2ca3(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jclass cls_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) {+jbyte inline_c_Foreign_JNI_68_1f0c41a419f29557514552df4d07022a006f2ca3(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jclass cls_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) { return ( (*env_inline_c_0)->CallStaticByteMethodA(env_inline_c_1, cls_inline_c_2, method_inline_c_3, cargs_inline_c_4) ); } -jchar inline_c_Foreign_JNI_67_51a3cb1cefc6391ba5958a887d84196690a418f2(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jclass cls_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) {+jchar inline_c_Foreign_JNI_69_51a3cb1cefc6391ba5958a887d84196690a418f2(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jclass cls_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) { return ( (*env_inline_c_0)->CallStaticCharMethodA(env_inline_c_1, cls_inline_c_2, method_inline_c_3, cargs_inline_c_4) ); } -jshort inline_c_Foreign_JNI_68_5822dfce2b301e3b90f80885a4a5838bdc57cd44(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jclass cls_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) {+jshort inline_c_Foreign_JNI_70_5822dfce2b301e3b90f80885a4a5838bdc57cd44(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jclass cls_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) { return ( (*env_inline_c_0)->CallStaticShortMethodA(env_inline_c_1, cls_inline_c_2, method_inline_c_3, cargs_inline_c_4) ); } -jint inline_c_Foreign_JNI_69_4fdc28424fe7ef156763f715ef79463ed387abb2(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jclass cls_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) {+jint inline_c_Foreign_JNI_71_4fdc28424fe7ef156763f715ef79463ed387abb2(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jclass cls_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) { return ( (*env_inline_c_0)->CallStaticIntMethodA(env_inline_c_1, cls_inline_c_2, method_inline_c_3, cargs_inline_c_4) ); } -jlong inline_c_Foreign_JNI_70_93382b358dc7f0275c6a620eaa67fdfd75167d54(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jclass cls_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) {+jlong inline_c_Foreign_JNI_72_93382b358dc7f0275c6a620eaa67fdfd75167d54(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jclass cls_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) { return ( (*env_inline_c_0)->CallStaticLongMethodA(env_inline_c_1, cls_inline_c_2, method_inline_c_3, cargs_inline_c_4) ); } -jfloat inline_c_Foreign_JNI_71_89ea2435847f3d94e8b71bcceba739a077829ca9(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jclass cls_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) {+jfloat inline_c_Foreign_JNI_73_89ea2435847f3d94e8b71bcceba739a077829ca9(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jclass cls_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) { return ( (*env_inline_c_0)->CallStaticFloatMethodA(env_inline_c_1, cls_inline_c_2, method_inline_c_3, cargs_inline_c_4) ); } -jdouble inline_c_Foreign_JNI_72_0b9bb41f21f19495338507ff5779f50a17ac0245(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jclass cls_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) {+jdouble inline_c_Foreign_JNI_74_0b9bb41f21f19495338507ff5779f50a17ac0245(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jclass cls_inline_c_2, jmethodID method_inline_c_3, jvalue * cargs_inline_c_4) { return ( (*env_inline_c_0)->CallStaticDoubleMethodA(env_inline_c_1, cls_inline_c_2, method_inline_c_3, cargs_inline_c_4) ); } -jobjectArray inline_c_Foreign_JNI_73_0b57533e83360b5a6660bf703521b3b6c2fbec66(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jsize sz_inline_c_2, jclass cls_inline_c_3) {+jobjectArray inline_c_Foreign_JNI_75_0b57533e83360b5a6660bf703521b3b6c2fbec66(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jsize sz_inline_c_2, jclass cls_inline_c_3) { return ( (*env_inline_c_0)->NewObjectArray(env_inline_c_1, sz_inline_c_2,@@ -445,47 +459,47 @@ } -jbooleanArray inline_c_Foreign_JNI_74_b1841567b8f0e99405458b9e8a3b7f3a3e20812f(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jsize sz_inline_c_2) {+jbooleanArray inline_c_Foreign_JNI_76_b1841567b8f0e99405458b9e8a3b7f3a3e20812f(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jsize sz_inline_c_2) { return ( (*env_inline_c_0)->NewBooleanArray(env_inline_c_1, sz_inline_c_2) ); } -jbyteArray inline_c_Foreign_JNI_75_1a9345ff427557126ba3aa5f0fb460f3df632ff8(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jsize sz_inline_c_2) {+jbyteArray inline_c_Foreign_JNI_77_1a9345ff427557126ba3aa5f0fb460f3df632ff8(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jsize sz_inline_c_2) { return ( (*env_inline_c_0)->NewByteArray(env_inline_c_1, sz_inline_c_2) ); } -jcharArray inline_c_Foreign_JNI_76_b00869a9422815fdc3aa43f15e3b782dc6f19e03(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jsize sz_inline_c_2) {+jcharArray inline_c_Foreign_JNI_78_b00869a9422815fdc3aa43f15e3b782dc6f19e03(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jsize sz_inline_c_2) { return ( (*env_inline_c_0)->NewCharArray(env_inline_c_1, sz_inline_c_2) ); } -jshortArray inline_c_Foreign_JNI_77_06a1e38de0ed2d7764757388457ed0797c72d8aa(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jsize sz_inline_c_2) {+jshortArray inline_c_Foreign_JNI_79_06a1e38de0ed2d7764757388457ed0797c72d8aa(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jsize sz_inline_c_2) { return ( (*env_inline_c_0)->NewShortArray(env_inline_c_1, sz_inline_c_2) ); } -jintArray inline_c_Foreign_JNI_78_af7c087746afd64be9d977ebf078c2df4b3d918e(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jsize sz_inline_c_2) {+jintArray inline_c_Foreign_JNI_80_af7c087746afd64be9d977ebf078c2df4b3d918e(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jsize sz_inline_c_2) { return ( (*env_inline_c_0)->NewIntArray(env_inline_c_1, sz_inline_c_2) ); } -jlongArray inline_c_Foreign_JNI_79_270c75c62cc97fdc3741af544fa35a61abf37fba(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jsize sz_inline_c_2) {+jlongArray inline_c_Foreign_JNI_81_270c75c62cc97fdc3741af544fa35a61abf37fba(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jsize sz_inline_c_2) { return ( (*env_inline_c_0)->NewLongArray(env_inline_c_1, sz_inline_c_2) ); } -jfloatArray inline_c_Foreign_JNI_80_312dee8af1c4b2058cb1b2703277cf297ba34224(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jsize sz_inline_c_2) {+jfloatArray inline_c_Foreign_JNI_82_312dee8af1c4b2058cb1b2703277cf297ba34224(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jsize sz_inline_c_2) { return ( (*env_inline_c_0)->NewFloatArray(env_inline_c_1, sz_inline_c_2) ); } -jdoubleArray inline_c_Foreign_JNI_81_103070e78986a21762e18c9aebfa9162a3565d9b(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jsize sz_inline_c_2) {+jdoubleArray inline_c_Foreign_JNI_83_103070e78986a21762e18c9aebfa9162a3565d9b(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jsize sz_inline_c_2) { return ( (*env_inline_c_0)->NewDoubleArray(env_inline_c_1, sz_inline_c_2) ); } -jstring inline_c_Foreign_JNI_82_d5ed5b314231e7dc3292c2329a2cb4191e262633(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jchar * ptr_inline_c_2, jsize len_inline_c_3) {+jstring inline_c_Foreign_JNI_84_d5ed5b314231e7dc3292c2329a2cb4191e262633(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jchar * ptr_inline_c_2, jsize len_inline_c_3) { return ( (*env_inline_c_0)->NewString(env_inline_c_1, ptr_inline_c_2,@@ -493,61 +507,61 @@ } -jsize inline_c_Foreign_JNI_83_9be0134c89fa74c4d07a2601d81d89982ce8bdf6(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jarray array_inline_c_2) {+jsize inline_c_Foreign_JNI_85_9be0134c89fa74c4d07a2601d81d89982ce8bdf6(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jarray array_inline_c_2) { return ( (*env_inline_c_0)->GetArrayLength(env_inline_c_1, array_inline_c_2) ); } -jsize inline_c_Foreign_JNI_84_2e55ce4ded52c43b7b69c0c49c4425aef4f8a80b(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jstring jstr_inline_c_2) {+jsize inline_c_Foreign_JNI_86_2e55ce4ded52c43b7b69c0c49c4425aef4f8a80b(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jstring jstr_inline_c_2) { return ( (*env_inline_c_0)->GetStringLength(env_inline_c_1, jstr_inline_c_2) ); } -jboolean * inline_c_Foreign_JNI_85_153a97a3a91d03dbe7d10fe0e3d48afaa842ee96(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2) {+jboolean * inline_c_Foreign_JNI_87_153a97a3a91d03dbe7d10fe0e3d48afaa842ee96(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2) { return ( (*env_inline_c_0)->GetBooleanArrayElements(env_inline_c_1, array_inline_c_2, NULL) ); } -jbyte * inline_c_Foreign_JNI_86_b630cdc25e3d575cad69a3fc3bec490a99a6ab49(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2) {+jbyte * inline_c_Foreign_JNI_88_b630cdc25e3d575cad69a3fc3bec490a99a6ab49(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2) { return ( (*env_inline_c_0)->GetByteArrayElements(env_inline_c_1, array_inline_c_2, NULL) ); } -jchar * inline_c_Foreign_JNI_87_7c0f806fe4d40ac0c1d06b4ccccc42fdc562c8ec(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2) {+jchar * inline_c_Foreign_JNI_89_7c0f806fe4d40ac0c1d06b4ccccc42fdc562c8ec(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2) { return ( (*env_inline_c_0)->GetCharArrayElements(env_inline_c_1, array_inline_c_2, NULL) ); } -jshort * inline_c_Foreign_JNI_88_66e42eb3b8a0e71cc0cc2b722b925689a20ed23f(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2) {+jshort * inline_c_Foreign_JNI_90_66e42eb3b8a0e71cc0cc2b722b925689a20ed23f(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2) { return ( (*env_inline_c_0)->GetShortArrayElements(env_inline_c_1, array_inline_c_2, NULL) ); } -jint * inline_c_Foreign_JNI_89_9ca3666fbed332c3a833881ceba71295e27d5d16(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2) {+jint * inline_c_Foreign_JNI_91_9ca3666fbed332c3a833881ceba71295e27d5d16(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2) { return ( (*env_inline_c_0)->GetIntArrayElements(env_inline_c_1, array_inline_c_2, NULL) ); } -jlong * inline_c_Foreign_JNI_90_3bd0969839fbd68b98c00a27f6197704f6e2718b(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2) {+jlong * inline_c_Foreign_JNI_92_3bd0969839fbd68b98c00a27f6197704f6e2718b(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2) { return ( (*env_inline_c_0)->GetLongArrayElements(env_inline_c_1, array_inline_c_2, NULL) ); } -jfloat * inline_c_Foreign_JNI_91_1799b6e92e7df6d5155518d25fe2fde47055a7ff(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2) {+jfloat * inline_c_Foreign_JNI_93_1799b6e92e7df6d5155518d25fe2fde47055a7ff(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2) { return ( (*env_inline_c_0)->GetFloatArrayElements(env_inline_c_1, array_inline_c_2, NULL) ); } -jdouble * inline_c_Foreign_JNI_92_6b454504f66bff257e7cb14d00f7064112a8f5a2(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2) {+jdouble * inline_c_Foreign_JNI_94_6b454504f66bff257e7cb14d00f7064112a8f5a2(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2) { return ( (*env_inline_c_0)->GetDoubleArrayElements(env_inline_c_1, array_inline_c_2, NULL) ); } -const jchar * inline_c_Foreign_JNI_93_ac075a3bdcb535575fe36c6f7b5eb3d66ace44a7(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jstring jstr_inline_c_2) {+const jchar * inline_c_Foreign_JNI_95_ac075a3bdcb535575fe36c6f7b5eb3d66ace44a7(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jstring jstr_inline_c_2) { return ( (*env_inline_c_0)->GetStringChars(env_inline_c_1, jstr_inline_c_2,@@ -555,87 +569,87 @@ } -void inline_c_Foreign_JNI_94_c405fd2cc3cc77bea5093b022f17d3b2c443e2a2(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jbooleanArray array_inline_c_2, jsize start_inline_c_3, jsize len_inline_c_4, jboolean * buf_inline_c_5) {+void inline_c_Foreign_JNI_96_c405fd2cc3cc77bea5093b022f17d3b2c443e2a2(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jbooleanArray array_inline_c_2, jsize start_inline_c_3, jsize len_inline_c_4, jboolean * buf_inline_c_5) { (*env_inline_c_0)->SetBooleanArrayRegion(env_inline_c_1, array_inline_c_2, start_inline_c_3, len_inline_c_4, buf_inline_c_5) ; } -void inline_c_Foreign_JNI_95_6aefb6e6ad5f3a169ff39bd2c3186b897bcd220f(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jbyteArray array_inline_c_2, jsize start_inline_c_3, jsize len_inline_c_4, jbyte * buf_inline_c_5) {+void inline_c_Foreign_JNI_97_6aefb6e6ad5f3a169ff39bd2c3186b897bcd220f(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jbyteArray array_inline_c_2, jsize start_inline_c_3, jsize len_inline_c_4, jbyte * buf_inline_c_5) { (*env_inline_c_0)->SetByteArrayRegion(env_inline_c_1, array_inline_c_2, start_inline_c_3, len_inline_c_4, buf_inline_c_5) ; } -void inline_c_Foreign_JNI_96_a1e161a18fa39331bad743b7e07b0399b3104242(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jcharArray array_inline_c_2, jsize start_inline_c_3, jsize len_inline_c_4, jchar * buf_inline_c_5) {+void inline_c_Foreign_JNI_98_a1e161a18fa39331bad743b7e07b0399b3104242(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jcharArray array_inline_c_2, jsize start_inline_c_3, jsize len_inline_c_4, jchar * buf_inline_c_5) { (*env_inline_c_0)->SetCharArrayRegion(env_inline_c_1, array_inline_c_2, start_inline_c_3, len_inline_c_4, buf_inline_c_5) ; } -void inline_c_Foreign_JNI_97_4221edb9c7b0c1666f5952fe23aad965e2f58085(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jshortArray array_inline_c_2, jsize start_inline_c_3, jsize len_inline_c_4, jshort * buf_inline_c_5) {+void inline_c_Foreign_JNI_99_4221edb9c7b0c1666f5952fe23aad965e2f58085(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jshortArray array_inline_c_2, jsize start_inline_c_3, jsize len_inline_c_4, jshort * buf_inline_c_5) { (*env_inline_c_0)->SetShortArrayRegion(env_inline_c_1, array_inline_c_2, start_inline_c_3, len_inline_c_4, buf_inline_c_5) ; } -void inline_c_Foreign_JNI_98_0cf86cc89e108bd7ed150e5aad2e7d8d8f95dd7a(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jintArray array_inline_c_2, jsize start_inline_c_3, jsize len_inline_c_4, jint * buf_inline_c_5) {+void inline_c_Foreign_JNI_100_0cf86cc89e108bd7ed150e5aad2e7d8d8f95dd7a(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jintArray array_inline_c_2, jsize start_inline_c_3, jsize len_inline_c_4, jint * buf_inline_c_5) { (*env_inline_c_0)->SetIntArrayRegion(env_inline_c_1, array_inline_c_2, start_inline_c_3, len_inline_c_4, buf_inline_c_5) ; } -void inline_c_Foreign_JNI_99_983cb43fd1962ef866086f1819815a8b05791888(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jlongArray array_inline_c_2, jsize start_inline_c_3, jsize len_inline_c_4, jlong * buf_inline_c_5) {+void inline_c_Foreign_JNI_101_983cb43fd1962ef866086f1819815a8b05791888(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jlongArray array_inline_c_2, jsize start_inline_c_3, jsize len_inline_c_4, jlong * buf_inline_c_5) { (*env_inline_c_0)->SetLongArrayRegion(env_inline_c_1, array_inline_c_2, start_inline_c_3, len_inline_c_4, buf_inline_c_5) ; } -void inline_c_Foreign_JNI_100_26c6b32031e2561eb5fc3b047d493c3a784bbf40(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jfloatArray array_inline_c_2, jsize start_inline_c_3, jsize len_inline_c_4, jfloat * buf_inline_c_5) {+void inline_c_Foreign_JNI_102_26c6b32031e2561eb5fc3b047d493c3a784bbf40(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jfloatArray array_inline_c_2, jsize start_inline_c_3, jsize len_inline_c_4, jfloat * buf_inline_c_5) { (*env_inline_c_0)->SetFloatArrayRegion(env_inline_c_1, array_inline_c_2, start_inline_c_3, len_inline_c_4, buf_inline_c_5) ; } -void inline_c_Foreign_JNI_101_fbded71aa93cca94c495be618b75c7f610619a93(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jdoubleArray array_inline_c_2, jsize start_inline_c_3, jsize len_inline_c_4, jdouble * buf_inline_c_5) {+void inline_c_Foreign_JNI_103_fbded71aa93cca94c495be618b75c7f610619a93(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jdoubleArray array_inline_c_2, jsize start_inline_c_3, jsize len_inline_c_4, jdouble * buf_inline_c_5) { (*env_inline_c_0)->SetDoubleArrayRegion(env_inline_c_1, array_inline_c_2, start_inline_c_3, len_inline_c_4, buf_inline_c_5) ; } -void inline_c_Foreign_JNI_102_5d5355f911ff38accf7df59e4f3407823efa0055(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2, jboolean * xs_inline_c_3) {+void inline_c_Foreign_JNI_104_5d5355f911ff38accf7df59e4f3407823efa0055(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2, jboolean * xs_inline_c_3) { (*env_inline_c_0)->ReleaseBooleanArrayElements(env_inline_c_1, array_inline_c_2, xs_inline_c_3, JNI_ABORT) ; } -void inline_c_Foreign_JNI_103_93701f28f0a45b8531f977f3ad28d48b747bb58c(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2, jbyte * xs_inline_c_3) {+void inline_c_Foreign_JNI_105_93701f28f0a45b8531f977f3ad28d48b747bb58c(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2, jbyte * xs_inline_c_3) { (*env_inline_c_0)->ReleaseByteArrayElements(env_inline_c_1, array_inline_c_2, xs_inline_c_3, JNI_ABORT) ; } -void inline_c_Foreign_JNI_104_d799968701da7f57e4eb07390e1efda373184222(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2, jchar * xs_inline_c_3) {+void inline_c_Foreign_JNI_106_d799968701da7f57e4eb07390e1efda373184222(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2, jchar * xs_inline_c_3) { (*env_inline_c_0)->ReleaseCharArrayElements(env_inline_c_1, array_inline_c_2, xs_inline_c_3, JNI_ABORT) ; } -void inline_c_Foreign_JNI_105_03e0c5a40ab324b1c42f0b70ceaeb6b1605a0ded(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2, jshort * xs_inline_c_3) {+void inline_c_Foreign_JNI_107_03e0c5a40ab324b1c42f0b70ceaeb6b1605a0ded(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2, jshort * xs_inline_c_3) { (*env_inline_c_0)->ReleaseShortArrayElements(env_inline_c_1, array_inline_c_2, xs_inline_c_3, JNI_ABORT) ; } -void inline_c_Foreign_JNI_106_4c2726a53e147cd6eb61733e27bfc599bc883f74(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2, jint * xs_inline_c_3) {+void inline_c_Foreign_JNI_108_4c2726a53e147cd6eb61733e27bfc599bc883f74(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2, jint * xs_inline_c_3) { (*env_inline_c_0)->ReleaseIntArrayElements(env_inline_c_1, array_inline_c_2, xs_inline_c_3, JNI_ABORT) ; } -void inline_c_Foreign_JNI_107_9e1790871e959852cb5032b3f2833c370b81bb0f(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2, jlong * xs_inline_c_3) {+void inline_c_Foreign_JNI_109_9e1790871e959852cb5032b3f2833c370b81bb0f(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2, jlong * xs_inline_c_3) { (*env_inline_c_0)->ReleaseLongArrayElements(env_inline_c_1, array_inline_c_2, xs_inline_c_3, JNI_ABORT) ; } -void inline_c_Foreign_JNI_108_44c06b418c79983d60f09ffc49851077b1feb632(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2, jfloat * xs_inline_c_3) {+void inline_c_Foreign_JNI_110_44c06b418c79983d60f09ffc49851077b1feb632(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2, jfloat * xs_inline_c_3) { (*env_inline_c_0)->ReleaseFloatArrayElements(env_inline_c_1, array_inline_c_2, xs_inline_c_3, JNI_ABORT) ; } -void inline_c_Foreign_JNI_109_94830601ce91790b75e74abe9c9819be2e748762(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2, jdouble * xs_inline_c_3) {+void inline_c_Foreign_JNI_111_94830601ce91790b75e74abe9c9819be2e748762(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobject array_inline_c_2, jdouble * xs_inline_c_3) { (*env_inline_c_0)->ReleaseDoubleArrayElements(env_inline_c_1, array_inline_c_2, xs_inline_c_3, JNI_ABORT) ; } -void inline_c_Foreign_JNI_110_7a962d5f8e6114066dca42386535e4a079022eae(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jstring jstr_inline_c_2, jchar * chars_inline_c_3) {+void inline_c_Foreign_JNI_112_7a962d5f8e6114066dca42386535e4a079022eae(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jstring jstr_inline_c_2, jchar * chars_inline_c_3) { (*env_inline_c_0)->ReleaseStringChars(env_inline_c_1, jstr_inline_c_2,@@ -643,7 +657,7 @@ } -jobject inline_c_Foreign_JNI_111_bb66272284cce01d85b6ec31967e1a66eae7e0c5(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jarray array_inline_c_2, jsize i_inline_c_3) {+jobject inline_c_Foreign_JNI_113_bb66272284cce01d85b6ec31967e1a66eae7e0c5(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jarray array_inline_c_2, jsize i_inline_c_3) { return ( (*env_inline_c_0)->GetObjectArrayElement(env_inline_c_1, array_inline_c_2,@@ -651,7 +665,7 @@ } -void inline_c_Foreign_JNI_112_c069b4edd080791f4858d4a7a48b8c42c99c8e4a(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobjectArray array_inline_c_2, jsize i_inline_c_3, jobject x_inline_c_4) {+void inline_c_Foreign_JNI_114_c069b4edd080791f4858d4a7a48b8c42c99c8e4a(JNIEnv * env_inline_c_0, JNIEnv * env_inline_c_1, jobjectArray array_inline_c_2, jsize i_inline_c_3, jobject x_inline_c_4) { (*env_inline_c_0)->SetObjectArrayElement(env_inline_c_1, array_inline_c_2,
src/Foreign/JNI.hs view
@@ -43,6 +43,9 @@ , getMethodID , getStaticMethodID , getObjectClass+ -- ** Reference manipulation+ , newGlobalRef+ , deleteGlobalRef -- ** Field accessor functions -- *** Get fields , getObjectField@@ -481,6 +484,19 @@ [CU.exp| jclass { (*$(JNIEnv *env))->GetObjectClass($(JNIEnv *env), $(jobject obj)) } |]++newGlobalRef :: Coercible o (J ty) => o -> IO o+newGlobalRef (coerce -> upcast -> obj) = withJNIEnv $ \env ->+ fmap coerce $+ [CU.exp| jobject {+ (*$(JNIEnv *env))->NewGlobalRef($(JNIEnv *env),+ $(jobject obj)) } |]++deleteGlobalRef :: Coercible o (J ty) => o -> IO ()+deleteGlobalRef (coerce -> upcast -> obj) = withJNIEnv $ \env ->+ [CU.block| void {+ (*$(JNIEnv *env))->DeleteGlobalRef($(JNIEnv *env),+ $(jobject obj)); } |] -- Modern CPP does have ## for concatenating strings, but we use the hacky /**/ -- comment syntax for string concatenation. This is because GHC passes