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

Implemented 'Rf_getClassDef'.

parent 39a05277
No related branches found
No related tags found
No related merge requests found
......@@ -222,6 +222,13 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI {
return 0;
}
@Override
public Object R_getClassDef(String clazz) {
String name = "getClassDef";
RFunction getClass = (RFunction) RContext.getRRuntimeASTAccess().forcePromise(name, REnvironment.getRegisteredNamespace("methods").get(name));
return RContext.getEngine().evalFunction(getClass, null, RCaller.createInvalid(null), true, null, clazz);
}
@Override
public Object R_do_MAKE_CLASS(String clazz) {
String name = "getClass";
......
......@@ -96,6 +96,8 @@ public interface StdUpCallsRFFI {
int /* void */ Rf_defineVar(Object symbolArg, Object value, Object envArg);
Object R_getClassDef(@RFFICstring String clazz);
Object R_do_MAKE_CLASS(@RFFICstring String clazz);
@RFFIUpCallNode(MiscNodes.RDoNewObjectNode.class)
......
......@@ -67,105 +67,106 @@
#define R_do_new_object_x 62
#define R_do_slot_x 63
#define R_do_slot_assign_x 64
#define R_getContextCall_x 65
#define R_getContextEnv_x 66
#define R_getContextFun_x 67
#define R_getContextSrcRef_x 68
#define R_getGlobalFunctionContext_x 69
#define R_getParentFunctionContext_x 70
#define R_insideBrowser_x 71
#define R_isEqual_x 72
#define R_isGlobal_x 73
#define R_lsInternal3_x 74
#define R_new_custom_connection_x 75
#define R_tryEval_x 76
#define Rf_GetOption1_x 77
#define Rf_NonNullStringMatch_x 78
#define Rf_PairToVectorList_x 79
#define Rf_ScalarDouble_x 80
#define Rf_ScalarInteger_x 81
#define Rf_ScalarLogical_x 82
#define Rf_ScalarString_x 83
#define Rf_VectorToPairList_x 84
#define Rf_allocArray_x 85
#define Rf_allocMatrix_x 86
#define Rf_allocVector_x 87
#define Rf_any_duplicated_x 88
#define Rf_asChar_x 89
#define Rf_asCharacterFactor_x 90
#define Rf_asInteger_x 91
#define Rf_asLogical_x 92
#define Rf_asReal_x 93
#define Rf_classgets_x 94
#define Rf_coerceVector_x 95
#define Rf_cons_x 96
#define Rf_copyListMatrix_x 97
#define Rf_copyMatrix_x 98
#define Rf_copyMostAttrib_x 99
#define Rf_defineVar_x 100
#define Rf_dunif_x 101
#define Rf_duplicate_x 102
#define Rf_error_x 103
#define Rf_errorcall_x 104
#define Rf_eval_x 105
#define Rf_findFun_x 106
#define Rf_findVar_x 107
#define Rf_findVarInFrame_x 108
#define Rf_findVarInFrame3_x 109
#define Rf_getAttrib_x 110
#define Rf_gsetVar_x 111
#define Rf_inherits_x 112
#define Rf_install_x 113
#define Rf_installChar_x 114
#define Rf_isNull_x 115
#define Rf_isString_x 116
#define Rf_lengthgets_x 117
#define Rf_match_x 118
#define Rf_mkCharLenCE_x 119
#define Rf_namesgets_x 120
#define Rf_ncols_x 121
#define Rf_nrows_x 122
#define Rf_protect_x 123
#define Rf_punif_x 124
#define Rf_qunif_x 125
#define Rf_runif_x 126
#define Rf_setAttrib_x 127
#define Rf_str2type_x 128
#define Rf_unprotect_x 129
#define Rf_unprotect_ptr_x 130
#define Rf_warning_x 131
#define Rf_warningcall_x 132
#define Rprintf_x 133
#define SETCADR_x 134
#define SETCAR_x 135
#define SETCDR_x 136
#define SET_NAMED_FASTR_x 137
#define SET_RDEBUG_x 138
#define SET_RSTEP_x 139
#define SET_S4_OBJECT_x 140
#define SET_STRING_ELT_x 141
#define SET_SYMVALUE_x 142
#define SET_TAG_x 143
#define SET_TYPEOF_FASTR_x 144
#define SET_VECTOR_ELT_x 145
#define STRING_ELT_x 146
#define SYMVALUE_x 147
#define TAG_x 148
#define TYPEOF_x 149
#define UNSET_S4_OBJECT_x 150
#define VECTOR_ELT_x 151
#define forceSymbols_x 152
#define getCCallable_x 153
#define getConnectionClassString_x 154
#define getOpenModeString_x 155
#define getSummaryDescription_x 156
#define isSeekable_x 157
#define registerCCallable_x 158
#define registerRoutines_x 159
#define setDotSymbolValues_x 160
#define unif_rand_x 161
#define useDynamicSymbols_x 162
#define R_getClassDef_x 65
#define R_getContextCall_x 66
#define R_getContextEnv_x 67
#define R_getContextFun_x 68
#define R_getContextSrcRef_x 69
#define R_getGlobalFunctionContext_x 70
#define R_getParentFunctionContext_x 71
#define R_insideBrowser_x 72
#define R_isEqual_x 73
#define R_isGlobal_x 74
#define R_lsInternal3_x 75
#define R_new_custom_connection_x 76
#define R_tryEval_x 77
#define Rf_GetOption1_x 78
#define Rf_NonNullStringMatch_x 79
#define Rf_PairToVectorList_x 80
#define Rf_ScalarDouble_x 81
#define Rf_ScalarInteger_x 82
#define Rf_ScalarLogical_x 83
#define Rf_ScalarString_x 84
#define Rf_VectorToPairList_x 85
#define Rf_allocArray_x 86
#define Rf_allocMatrix_x 87
#define Rf_allocVector_x 88
#define Rf_any_duplicated_x 89
#define Rf_asChar_x 90
#define Rf_asCharacterFactor_x 91
#define Rf_asInteger_x 92
#define Rf_asLogical_x 93
#define Rf_asReal_x 94
#define Rf_classgets_x 95
#define Rf_coerceVector_x 96
#define Rf_cons_x 97
#define Rf_copyListMatrix_x 98
#define Rf_copyMatrix_x 99
#define Rf_copyMostAttrib_x 100
#define Rf_defineVar_x 101
#define Rf_dunif_x 102
#define Rf_duplicate_x 103
#define Rf_error_x 104
#define Rf_errorcall_x 105
#define Rf_eval_x 106
#define Rf_findFun_x 107
#define Rf_findVar_x 108
#define Rf_findVarInFrame_x 109
#define Rf_findVarInFrame3_x 110
#define Rf_getAttrib_x 111
#define Rf_gsetVar_x 112
#define Rf_inherits_x 113
#define Rf_install_x 114
#define Rf_installChar_x 115
#define Rf_isNull_x 116
#define Rf_isString_x 117
#define Rf_lengthgets_x 118
#define Rf_match_x 119
#define Rf_mkCharLenCE_x 120
#define Rf_namesgets_x 121
#define Rf_ncols_x 122
#define Rf_nrows_x 123
#define Rf_protect_x 124
#define Rf_punif_x 125
#define Rf_qunif_x 126
#define Rf_runif_x 127
#define Rf_setAttrib_x 128
#define Rf_str2type_x 129
#define Rf_unprotect_x 130
#define Rf_unprotect_ptr_x 131
#define Rf_warning_x 132
#define Rf_warningcall_x 133
#define Rprintf_x 134
#define SETCADR_x 135
#define SETCAR_x 136
#define SETCDR_x 137
#define SET_NAMED_FASTR_x 138
#define SET_RDEBUG_x 139
#define SET_RSTEP_x 140
#define SET_S4_OBJECT_x 141
#define SET_STRING_ELT_x 142
#define SET_SYMVALUE_x 143
#define SET_TAG_x 144
#define SET_TYPEOF_FASTR_x 145
#define SET_VECTOR_ELT_x 146
#define STRING_ELT_x 147
#define SYMVALUE_x 148
#define TAG_x 149
#define TYPEOF_x 150
#define UNSET_S4_OBJECT_x 151
#define VECTOR_ELT_x 152
#define forceSymbols_x 153
#define getCCallable_x 154
#define getConnectionClassString_x 155
#define getOpenModeString_x 156
#define getSummaryDescription_x 157
#define isSeekable_x 158
#define registerCCallable_x 159
#define registerRoutines_x 160
#define setDotSymbolValues_x 161
#define unif_rand_x 162
#define useDynamicSymbols_x 163
#define UPCALLS_TABLE_SIZE 163
#define UPCALLS_TABLE_SIZE 164
#endif // RFFI_UPCALLSINDEX_H
......@@ -1316,8 +1316,8 @@ SEXP R_do_MAKE_CLASS(const char *what) {
}
SEXP R_getClassDef (const char *what) {
TRACE0();
return unimplemented("R_getClassDef");
TRACE(TARGs, what);
return ((call_R_getClassDef) callbacks[R_getClassDef_x])(what);
}
SEXP R_do_new_object(SEXP class_def) {
......
38
39
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