diff --git a/com.oracle.truffle.r.native/fficall/src/truffle_common/Rinternals_truffle_common.h b/com.oracle.truffle.r.native/fficall/src/truffle_common/Rinternals_truffle_common.h index 809858dbd944a44b59045e550cc123bed517cfd1..51579ad956704436390714235fdad205f3ee3491 100644 --- a/com.oracle.truffle.r.native/fficall/src/truffle_common/Rinternals_truffle_common.h +++ b/com.oracle.truffle.r.native/fficall/src/truffle_common/Rinternals_truffle_common.h @@ -66,6 +66,15 @@ #include <rffiutils.h> +// these two functions are here just to handle casting void* to void function pointers... +DL_FUNC R_ExternalPtrAddrFn(SEXP s) { + return (DL_FUNC) R_ExternalPtrAddr(s); +} + +SEXP R_MakeExternalPtrFn(DL_FUNC p, SEXP tag, SEXP prot) { + return R_MakeExternalPtr((void *) p, tag, prot); +} + // R_GlobalEnv et al are not a variables in FASTR as they are RContext specific SEXP FASTR_R_GlobalEnv() { TRACE0(); @@ -1391,6 +1400,7 @@ SEXP R_MakeExternalPtr(void *p, SEXP tag, SEXP prot) { } void *R_ExternalPtrAddr(SEXP s) { + TRACE0(); SEXP result = ((call_R_ExternalPtrAddr) callbacks[R_ExternalPtrAddr_x])(s); checkExitCall(); diff --git a/com.oracle.truffle.r.native/version.source b/com.oracle.truffle.r.native/version.source index 425151f3a411f5e088d7753e7c8d016303b1b9d1..87523dd7a0632907d61799465827c3f08825fa47 100644 --- a/com.oracle.truffle.r.native/version.source +++ b/com.oracle.truffle.r.native/version.source @@ -1 +1 @@ -40 +41