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