/* Emit parameter names */
names = g_new (char *, sig->param_count);
- mono_method_get_param_names (method, (const char **) names);
+ mono_method_get_param_names_internal (method, (const char **) names);
for (guint16 i = 0; i < sig->param_count; ++i)
buffer_add_string (buf, names [i]);
g_free (names);
MONO_COMPONENT_API MonoMethodHeader*
mono_method_get_header_internal (MonoMethod *method, MonoError *error);
+MONO_COMPONENT_API void
+mono_method_get_param_names_internal (MonoMethod *method, const char **names);
+
MonoType*
mono_class_find_enum_basetype (MonoClass *klass, MonoError *error);
void
mono_method_get_param_names (MonoMethod *method, const char **names)
{
+ MONO_ENTER_GC_UNSAFE;
+ mono_method_get_param_names_internal (method, names);
+ MONO_EXIT_GC_UNSAFE;
+}
+
+/**
+ * mono_method_get_param_names_internal:
+ */
+void
+mono_method_get_param_names_internal (MonoMethod *method, const char **names)
+{
int i, lastp;
MonoClass *klass;
MonoTableInfo *paramt;
MonoReflectionMethodHandle member = mono_method_get_object_handle (method, refclass, error);
goto_if_nok (error, leave);
names = g_new (char *, sig->param_count);
- mono_method_get_param_names (method, (const char **) names);
+ mono_method_get_param_names_internal (method, (const char **) names);
mspecs = g_new (MonoMarshalSpec*, sig->param_count + 1);
mono_method_get_marshal_info (method, mspecs);
if (only_arguments) {
char **names;
names = g_new (char *, jit->num_params);
- mono_method_get_param_names (jinfo_get_method (ji), (const char **) names);
+ mono_method_get_param_names_internal (jinfo_get_method (ji), (const char **) names);
if (jit->this_var)
print_var_info (jit->this_var, 0, "this", "Arg");
for (guint32 i = 0; i < jit->num_params; ++i) {
/* Subprogram */
names = g_new0 (char *, sig->param_count);
- mono_method_get_param_names (method, (const char **) names);
+ mono_method_get_param_names_internal (method, (const char **) names);
emit_uleb128 (w, ABBREV_SUBPROGRAM);
/* DW_AT_name */
}
names = g_new (char *, sig->param_count);
- mono_method_get_param_names (cfg->method, (const char **) names);
+ mono_method_get_param_names_internal (cfg->method, (const char **) names);
for (int i = 0; i < sig->param_count; ++i) {
LLVMArgInfo *ainfo = &linfo->args [i + sig->hasthis];
LLVMSetValueName (LLVMGetParam (method, linfo->dummy_arg_pindex), "dummy_arg");
names = g_new (char *, sig->param_count);
- mono_method_get_param_names (cfg->method, (const char **) names);
+ mono_method_get_param_names_internal (cfg->method, (const char **) names);
/* Set parameter names/attributes */
for (int i = 0; i < sig->param_count; ++i) {
MONO_API_FUNCTION(MONO_RT_EXTERNAL_ONLY void*, mono_lookup_pinvoke_call, (MonoMethod *method, const char **exc_class, const char **exc_arg))
-MONO_API_FUNCTION(void, mono_method_get_param_names, (MonoMethod *method, const char **names))
+MONO_API_FUNCTION(MONO_RT_EXTERNAL_ONLY void, mono_method_get_param_names, (MonoMethod *method, const char **names))
MONO_API_FUNCTION(uint32_t, mono_method_get_param_token, (MonoMethod *method, int idx))