@@ -753,6 +753,24 @@ SEXP jl4R_jlvalue_trycall(SEXP args) {
753
753
return resR ;
754
754
}
755
755
756
+ SEXP jl4R_jlvalue_tryfunc (SEXP args ) {
757
+ jl_value_t * res = NULL , * jlarg = NULL , * jlarg2 = NULL ;
758
+ jl_function_t * func = NULL , * jlv = NULL ;
759
+ SEXP resR ;
760
+
761
+ jl_module_t * jl_jl4r_module = (jl_module_t * )jl_get_global (jl_main_module , jl_symbol ("JL4R" ));
762
+ func = jl_get_function (jl_jl4r_module , "jltryfunc" );
763
+
764
+ JL_GC_PUSH4 (& jlv ,& res ,& jlarg ,& jlarg2 );
765
+ jlv = (jl_function_t * )get_preserved_jlvalue_from_R_ExternalPtrAddr (CADR (args ));
766
+ jlarg = (jl_value_t * )get_preserved_jlvalue_from_R_ExternalPtrAddr (CADDR (args ));
767
+ jlarg2 = (jl_value_t * )get_preserved_jlvalue_from_R_ExternalPtrAddr (CADDDR (args ));
768
+ res = jl_call3 (func , jlv , jlarg , jlarg2 );
769
+ resR = (SEXP )jlvalue (res );
770
+ JL_GC_POP ();
771
+ return resR ;
772
+ }
773
+
756
774
SEXP jl4R_jlvalue_func_call (SEXP jl_func , SEXP jl_args , SEXP jl_nargs ) {
757
775
int nargs ;
758
776
jl_value_t * * args ;
@@ -900,12 +918,13 @@ static const R_ExternalMethodDef externalMethods[] = {
900
918
// {"jl4R_as_Rvector",(DL_FUNC)&jl4R_as_Rvector,-1},
901
919
// {"jl4R_as_jlRvector",(DL_FUNC)&jl4R_as_jlRvector,-1},
902
920
{"jl4R_jlvalue_eval" ,(DL_FUNC ) & jl4R_jlvalue_eval ,-1 },
921
+ {"jl4R_jlvalue_trycall" ,(DL_FUNC ) & jl4R_jlvalue_trycall ,-1 },
922
+ {"jl4R_jlvalue_tryfunc" ,(DL_FUNC ) & jl4R_jlvalue_tryfunc ,-1 },
903
923
{"jl4R_jlvalue_call0" ,(DL_FUNC ) & jl4R_jlvalue_call0 ,-1 },
904
924
{"jl4R_jlvalue_call1" ,(DL_FUNC ) & jl4R_jlvalue_call1 ,-1 },
905
925
{"jl4R_jlvalue_call2" ,(DL_FUNC ) & jl4R_jlvalue_call2 ,-1 },
906
926
{"jl4R_jlvalue_call3" ,(DL_FUNC ) & jl4R_jlvalue_call3 ,-1 },
907
927
{"jl4R_jlvalue_func_call1" ,(DL_FUNC ) & jl4R_jlvalue_func_call1 ,-1 },
908
- {"jl4R_jlvalue_trycall" ,(DL_FUNC ) & jl4R_jlvalue_trycall ,-1 },
909
928
{"jl4R_jlvalue2R" ,(DL_FUNC ) & jl4R_jlvalue2R ,-1 },
910
929
{"jl4R_typeof2R" ,(DL_FUNC ) & jl4R_typeof2R ,-1 },
911
930
{"jl4R_jl_symbol" ,(DL_FUNC ) & jl4R_jl_symbol ,-1 },
0 commit comments