From 52bd5eb48695638f1790103996ae726f90257e56 Mon Sep 17 00:00:00 2001
From: Florian Angerer <florian.angerer@oracle.com>
Date: Thu, 21 Sep 2017 17:02:58 +0200
Subject: [PATCH] Added upcall for Rf_match.

---
 com.oracle.truffle.r.native/fficall/src/common/rffi_upcalls.h   | 1 +
 com.oracle.truffle.r.native/fficall/src/truffle_common/unique.c | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/com.oracle.truffle.r.native/fficall/src/common/rffi_upcalls.h b/com.oracle.truffle.r.native/fficall/src/common/rffi_upcalls.h
index 3d29cb9f88..6a0da3c3b7 100644
--- a/com.oracle.truffle.r.native/fficall/src/common/rffi_upcalls.h
+++ b/com.oracle.truffle.r.native/fficall/src/common/rffi_upcalls.h
@@ -275,6 +275,7 @@ typedef double (*call_Rf_qunif)(double a, double b, double c, int d, int e);
 typedef double (*call_Rf_dunif)(double a, double b, double c, int d);
 typedef double (*call_Rf_punif)(double a, double b, double c, int d, int e);
 typedef double (*call_Rf_runif)(double x, double y);
+typedef SEXP (*call_Rf_match)(SEXP itable, SEXP ix, int nmatch);
 
 typedef SEXP (*call_getvar)();
 
diff --git a/com.oracle.truffle.r.native/fficall/src/truffle_common/unique.c b/com.oracle.truffle.r.native/fficall/src/truffle_common/unique.c
index 30f4e5c2f0..bfbe23c5f8 100644
--- a/com.oracle.truffle.r.native/fficall/src/truffle_common/unique.c
+++ b/com.oracle.truffle.r.native/fficall/src/truffle_common/unique.c
@@ -31,6 +31,6 @@ SEXP Rf_matchE(SEXP itable, SEXP ix, int nmatch, SEXP env)
 /* used from other code, not here: */
 SEXP Rf_match(SEXP itable, SEXP ix, int nmatch)
 {
-	return R_NilValue;
+	return ((call_Rf_match) callbacks[Rf_match_x])(itable, ix, nmatch);
 }
 
-- 
GitLab