#include "mono/utils/mono-compiler.h"
#include "mono/utils/mono-error.h"
#include "mono/sgen/gc-internal-agnostic.h"
+#include "mono/utils/mono-error-internals.h"
#define MONO_CLASS_IS_ARRAY(c) (m_class_get_rank (c))
mono_class_get_context (MonoClass *klass);
MONO_PROFILER_API MonoMethodSignature*
-mono_method_signature_checked (MonoMethod *m, MonoError *err);
+mono_method_signature_checked_slow (MonoMethod *m, MonoError *err);
MONO_PROFILER_API MonoMethodSignature*
-mono_method_signature_internal (MonoMethod *m);
+mono_method_signature_internal_slow (MonoMethod *m);
+
+/**
+ * mono_method_signature_checked:
+ *
+ * Return the signature of the method M. On failure, returns NULL, and ERR is set.
+ */
+static inline MonoMethodSignature*
+mono_method_signature_checked (MonoMethod *m, MonoError *error)
+{
+ error_init (error);
+ MonoMethodSignature* sig = m->signature;
+ return sig ? sig : mono_method_signature_checked_slow (m, error);
+}
+
+/**
+ * mono_method_signature_internal:
+ * \returns the signature of the method \p m. On failure, returns NULL.
+ */
+static inline MonoMethodSignature*
+mono_method_signature_internal (MonoMethod *m)
+{
+ MonoMethodSignature* sig = m->signature;
+ return sig ? sig : mono_method_signature_internal_slow (m);
+}
MonoGenericContext*
mono_method_get_context_general (MonoMethod *method, gboolean uninflated);
}
/**
- * mono_method_signature_checked:
+ * mono_method_signature_checked_slow:
*
* Return the signature of the method M. On failure, returns NULL, and ERR is set.
+ * Call mono_method_signature_checked instead.
*/
MonoMethodSignature*
-mono_method_signature_checked (MonoMethod *m, MonoError *error)
+mono_method_signature_checked_slow (MonoMethod *m, MonoError *error)
{
int idx;
MonoImage* img;
}
/**
- * mono_method_signature_internal:
+ * mono_method_signature_internal_slow:
* \returns the signature of the method \p m. On failure, returns NULL.
+ * Call mono_method_signature_internal instead.
*/
MonoMethodSignature*
-mono_method_signature_internal (MonoMethod *m)
+mono_method_signature_internal_slow (MonoMethod *m)
{
ERROR_DECL (error);
MonoMethodSignature *sig = mono_method_signature_checked (m, error);