@@ -5,6 +5,7 @@ use ::jni::{
55 jni_sig, jni_str,
66 objects:: { JObject , Reference } ,
77} ;
8+ use :: jni:: errors:: ThrowRuntimeExAndDefault ;
89use std:: sync:: { Arc , Mutex } ;
910
1011bind_java_type ! {
@@ -313,7 +314,7 @@ pub(crate) extern "C" fn fn_adapter_call_internal<'local>(
313314) -> JObject < ' local > {
314315 use std:: panic:: { AssertUnwindSafe , catch_unwind} ;
315316
316- let outcome = env. with_env ( |env| -> std:: result:: Result < JObject < ' local > , jni:: errors:: Error > {
317+ env. with_env ( |env| -> std:: result:: Result < JObject < ' local > , jni:: errors:: Error > {
317318 let arc =
318319 if let Ok ( f) = unsafe { env. get_rust_field :: < _ , _ , FnWrapper > ( & obj1, jni_str ! ( "data" ) ) } {
319320 AssertUnwindSafe ( f. 0 . clone ( ) )
@@ -327,24 +328,21 @@ pub(crate) extern "C" fn fn_adapter_call_internal<'local>(
327328 Ok ( JObject :: null ( ) )
328329 }
329330 }
330- } ) ;
331- match outcome. into_outcome ( ) {
332- jni:: Outcome :: Ok ( obj) => obj,
333- _ => JObject :: null ( ) ,
334- }
331+ } )
332+ . resolve :: < ThrowRuntimeExAndDefault > ( )
335333}
336334
337335pub ( crate ) extern "C" fn fn_adapter_close_internal ( mut env : EnvUnowned , obj : JObject ) {
338336 use std:: panic:: { AssertUnwindSafe , catch_unwind} ;
339337
340- let outcome = env. with_env ( |env| {
338+ env. with_env ( |env| {
341339 let result = catch_unwind ( AssertUnwindSafe ( || {
342340 let _ = unsafe { env. take_rust_field :: < _ , _ , FnWrapper > ( & obj, jni_str ! ( "data" ) ) } ;
343341 } ) ) ;
344342 if let Err ( panic) = result {
345- let _ = super :: exceptions:: throw_panic ( env, panic) ;
343+ super :: exceptions:: throw_panic ( env, panic) ? ;
346344 }
347345 Ok :: < ( ) , jni:: errors:: Error > ( ( ) )
348- } ) ;
349- let _ = outcome . into_outcome ( ) ;
346+ } )
347+ . resolve :: < ThrowRuntimeExAndDefault > ( ) ;
350348}
0 commit comments