Esempio n. 1
0
File: util.c Progetto: richfitz/dde
// This gets a function pointer from a data pointer and avoids some
// compiler warnings.
DL_FUNC ptr_fn_get(SEXP r_ptr) {
#if defined(R_VERSION) && R_VERSION >= R_Version(3, 4, 0)
  return R_ExternalPtrAddrFn(r_ptr);
#else
  return (DL_FUNC) R_ExternalPtrAddr(r_ptr);
#endif
}
Esempio n. 2
0
DL_FUNC R_GetCCallable(const char *package, const char *name)
{
    SEXP penv = get_package_CEntry_table(package);
    SEXP eptr = findVarInFrame(penv, install(name));
    if (eptr == R_UnboundValue)
	error(_("function '%s' not provided by package '%s'"), name, package);
    else if (TYPEOF(eptr) != EXTPTRSXP)
	error(_("table entry must be an external pointer"));
    return R_ExternalPtrAddrFn(eptr);
}