@@ -2,7 +2,10 @@ pub mod loader;
2
2
pub mod shared;
3
3
pub mod wasm;
4
4
5
- use std:: { error:: Error , fmt:: Display } ;
5
+ use std:: {
6
+ error:: Error ,
7
+ fmt:: { Debug , Display } ,
8
+ } ;
6
9
7
10
use jni:: {
8
11
objects:: { JObject , JString } ,
@@ -25,7 +28,7 @@ pub extern "system" fn Java_net_ioixd_blackbox_Native_loadPlugin<'a>(
25
28
. unwrap ( )
26
29
. to_string_lossy ( )
27
30
. to_string ( ) ;
28
- if wasm == 1 {
31
+ if wasm == jni :: sys :: JNI_TRUE {
29
32
WASMLoader :: load_plugin ( env, file)
30
33
} else {
31
34
SharedLoader :: load_plugin ( env, file)
@@ -44,7 +47,7 @@ pub extern "system" fn Java_net_ioixd_blackbox_Native_enablePlugin<'a>(
44
47
. unwrap ( )
45
48
. to_string_lossy ( )
46
49
. to_string ( ) ;
47
- if wasm == 1 {
50
+ if wasm == jni :: sys :: JNI_TRUE {
48
51
WASMLoader :: enable_plugin ( file)
49
52
} else {
50
53
SharedLoader :: enable_plugin ( file)
@@ -63,7 +66,7 @@ pub extern "system" fn Java_net_ioixd_blackbox_Native_disablePlugin<'a>(
63
66
. unwrap ( )
64
67
. to_string_lossy ( )
65
68
. to_string ( ) ;
66
- if wasm == 1 {
69
+ if wasm == jni :: sys :: JNI_TRUE {
67
70
WASMLoader :: disable_plugin ( file)
68
71
} else {
69
72
SharedLoader :: disable_plugin ( file)
@@ -76,7 +79,7 @@ pub extern "system" fn Java_net_ioixd_blackbox_Native_libraryNames<'a>(
76
79
_obj : JObject ,
77
80
wasm : jboolean ,
78
81
) -> JString < ' a > {
79
- if wasm == 1 {
82
+ if wasm == jni :: sys :: JNI_TRUE {
80
83
WASMLoader :: library_names ( env)
81
84
} else {
82
85
SharedLoader :: library_names ( env)
@@ -100,7 +103,7 @@ pub extern "system" fn Java_net_ioixd_blackbox_Native_libraryHasFunction<'a>(
100
103
. to_string_lossy ( )
101
104
. to_string ( ) ;
102
105
103
- if wasm == 1 {
106
+ if wasm == jni :: sys :: JNI_TRUE {
104
107
WASMLoader :: library_has_function ( env, libname, funcname) . into ( )
105
108
} else {
106
109
SharedLoader :: library_has_function ( env, libname, funcname) . into ( )
@@ -124,7 +127,7 @@ pub extern "system" fn Java_net_ioixd_blackbox_Native_sendEvent<'a>(
124
127
let funcname = unwrap_result_or_java_error ( & mut env, & libname, funcname_raw)
125
128
. to_string_lossy ( )
126
129
. to_string ( ) ;
127
- if wasm == 1 {
130
+ if wasm == jni :: sys :: JNI_TRUE {
128
131
WASMLoader :: send_event ( env, libname, funcname, ev) . into ( )
129
132
} else {
130
133
SharedLoader :: send_event ( env, libname, funcname, ev) . into ( )
@@ -151,7 +154,7 @@ pub extern "system" fn Java_net_ioixd_blackbox_Native_execute<'a>(
151
154
. to_string_lossy ( )
152
155
. to_string ( ) ;
153
156
154
- if wasm == 1 {
157
+ if wasm == jni :: sys :: JNI_TRUE {
155
158
WASMLoader :: execute ( env, libname, funcname, address, plugin, ev)
156
159
} else {
157
160
SharedLoader :: execute ( env, libname, funcname, address, plugin, ev)
@@ -167,7 +170,7 @@ pub extern "system" fn Java_net_ioixd_blackbox_BiConsumerLink_acceptNative<'a>(
167
170
obj2 : JObject ,
168
171
wasm : jboolean ,
169
172
) {
170
- if wasm == 1 {
173
+ if wasm == jni :: sys :: JNI_TRUE {
171
174
throw_with_error (
172
175
& mut env,
173
176
"java/lang/UnsupportedOperationException" ,
@@ -209,6 +212,26 @@ where
209
212
}
210
213
}
211
214
}
215
+ pub fn unwrap_wasm_result_or_java_error < V , S > (
216
+ mut env : & mut JNIEnv ,
217
+ libname : S ,
218
+ opt : Result < V , wasmtime:: Error > ,
219
+ ) -> V
220
+ where
221
+ S : Into < String > + Display ,
222
+ {
223
+ match opt {
224
+ Ok ( v) => v,
225
+ Err ( err) => {
226
+ throw_with_error (
227
+ & mut env,
228
+ "net/ioixd/blackbox/exceptions/NativeLibrarySymbolLoadException" ,
229
+ format ! ( "error with {}: {:?}" , & libname, err) ,
230
+ ) ;
231
+ unreachable ! ( ) ;
232
+ }
233
+ }
234
+ }
212
235
213
236
pub fn unwrap_option_or_java_error < V , S > (
214
237
mut env : & mut JNIEnv ,
@@ -287,4 +310,5 @@ pub fn throw_with_error(
287
310
if let Err ( _) = er {
288
311
env. exception_describe ( ) . unwrap ( ) ;
289
312
}
313
+ env. exception_describe ( ) . unwrap ( ) ;
290
314
}
0 commit comments