Skip to content
Snippets Groups Projects
Commit b3831257 authored by Florian Angerer's avatar Florian Angerer
Browse files

Adapting to new NFI layout.

parent 32b6528c
No related branches found
No related tags found
No related merge requests found
......@@ -197,13 +197,17 @@ public final class MiscNodes {
}
@TypeSystemReference(RTypes.class)
abstract static class MatchNode extends FFIUpCallNode.Arg3 {
public abstract static class MatchNode extends FFIUpCallNode.Arg3 {
@SuppressWarnings("unused")
@Specialization
Object match(Object itables, Object ix, int nmatch) {
throw RInternalError.unimplemented("Rf_match");
}
public static MatchNode create() {
return MiscNodesFactory.MatchNodeGen.create();
}
}
}
......@@ -36,6 +36,7 @@ import com.oracle.truffle.r.ffi.impl.nodes.ListAccessNodes.CADRNode;
import com.oracle.truffle.r.ffi.impl.nodes.ListAccessNodes.CARNode;
import com.oracle.truffle.r.ffi.impl.nodes.ListAccessNodes.CDDRNode;
import com.oracle.truffle.r.ffi.impl.nodes.ListAccessNodes.CDRNode;
import com.oracle.truffle.r.ffi.impl.nodes.MiscNodes;
import com.oracle.truffle.r.ffi.impl.nodes.MiscNodes.LENGTHNode;
import com.oracle.truffle.r.ffi.processor.RFFICstring;
import com.oracle.truffle.r.ffi.processor.RFFIRunGC;
......@@ -344,5 +345,6 @@ public interface StdUpCallsRFFI {
@RFFIUpCallNode(CADDRNode.class)
Object Rf_asCharacterFactor(Object x);
@RFFIUpCallNode(MiscNodes.MatchNode.class)
Object Rf_match(Object itables, Object ix, int nmatch);
}
......@@ -119,51 +119,52 @@
#define Rf_isNull_x 114
#define Rf_isString_x 115
#define Rf_lengthgets_x 116
#define Rf_mkCharLenCE_x 117
#define Rf_namesgets_x 118
#define Rf_ncols_x 119
#define Rf_nrows_x 120
#define Rf_protect_x 121
#define Rf_punif_x 122
#define Rf_qunif_x 123
#define Rf_runif_x 124
#define Rf_setAttrib_x 125
#define Rf_str2type_x 126
#define Rf_unprotect_x 127
#define Rf_unprotect_ptr_x 128
#define Rf_warning_x 129
#define Rf_warningcall_x 130
#define Rprintf_x 131
#define SETCADR_x 132
#define SETCAR_x 133
#define SETCDR_x 134
#define SET_NAMED_FASTR_x 135
#define SET_RDEBUG_x 136
#define SET_RSTEP_x 137
#define SET_S4_OBJECT_x 138
#define SET_STRING_ELT_x 139
#define SET_SYMVALUE_x 140
#define SET_TAG_x 141
#define SET_TYPEOF_FASTR_x 142
#define SET_VECTOR_ELT_x 143
#define STRING_ELT_x 144
#define SYMVALUE_x 145
#define TAG_x 146
#define TYPEOF_x 147
#define UNSET_S4_OBJECT_x 148
#define VECTOR_ELT_x 149
#define forceSymbols_x 150
#define getCCallable_x 151
#define getConnectionClassString_x 152
#define getOpenModeString_x 153
#define getSummaryDescription_x 154
#define isSeekable_x 155
#define registerCCallable_x 156
#define registerRoutines_x 157
#define setDotSymbolValues_x 158
#define unif_rand_x 159
#define useDynamicSymbols_x 160
#define Rf_match_x 117
#define Rf_mkCharLenCE_x 118
#define Rf_namesgets_x 119
#define Rf_ncols_x 120
#define Rf_nrows_x 121
#define Rf_protect_x 122
#define Rf_punif_x 123
#define Rf_qunif_x 124
#define Rf_runif_x 125
#define Rf_setAttrib_x 126
#define Rf_str2type_x 127
#define Rf_unprotect_x 128
#define Rf_unprotect_ptr_x 129
#define Rf_warning_x 130
#define Rf_warningcall_x 131
#define Rprintf_x 132
#define SETCADR_x 133
#define SETCAR_x 134
#define SETCDR_x 135
#define SET_NAMED_FASTR_x 136
#define SET_RDEBUG_x 137
#define SET_RSTEP_x 138
#define SET_S4_OBJECT_x 139
#define SET_STRING_ELT_x 140
#define SET_SYMVALUE_x 141
#define SET_TAG_x 142
#define SET_TYPEOF_FASTR_x 143
#define SET_VECTOR_ELT_x 144
#define STRING_ELT_x 145
#define SYMVALUE_x 146
#define TAG_x 147
#define TYPEOF_x 148
#define UNSET_S4_OBJECT_x 149
#define VECTOR_ELT_x 150
#define forceSymbols_x 151
#define getCCallable_x 152
#define getConnectionClassString_x 153
#define getOpenModeString_x 154
#define getSummaryDescription_x 155
#define isSeekable_x 156
#define registerCCallable_x 157
#define registerRoutines_x 158
#define setDotSymbolValues_x 159
#define unif_rand_x 160
#define useDynamicSymbols_x 161
#define UPCALLS_TABLE_SIZE 161
#define UPCALLS_TABLE_SIZE 162
#endif // RFFI_UPCALLSINDEX_H
......@@ -20,14 +20,8 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
#include <rffiutils.h>
static jmethodID Rf_matchMethodID;
void init_unique(JNIEnv *env) {
Rf_matchMethodID = checkGetMethodID(env, UpCallsRFFIClass, "Rf_match", "(Ljava/lang/Object;Ljava/lang/Object;I)Ljava/lang/Object;", 0);
}
#include "../truffle_nfi/rffiutils.h"
#include "rffi_upcalls.h"
SEXP Rf_matchE(SEXP itable, SEXP ix, int nmatch, SEXP env)
{
......@@ -37,9 +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)
{
TRACE(TARGppd, itable, ix, nmatch);
JNIEnv *thisenv = getEnv();
SEXP result = (*thisenv)->CallObjectMethod(thisenv, UpCallsRFFIObject, Rf_matchMethodID, itable, ix, nmatch);
return checkRef(thisenv, result);
return R_NilValue;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment