cil-coff.h \
class.c \
class-internals.h \
+ class-inlines.h \
cominterop.c \
cominterop.h \
console-io.h \
--- /dev/null
+/*
+ * Copyright 2014 Xamarin Inc
+ */
+#ifndef __MONO_METADATA_CLASS_INLINES_H__
+#define __MONO_METADATA_CLASS_INLINES_H__
+
+#include <mono/metadata/class-internals.h>
+
+static inline gboolean
+mono_class_is_def (MonoClass *class)
+{
+ return class->class_kind == MONO_CLASS_DEF;
+}
+
+static inline gboolean
+mono_class_is_gtd (MonoClass *class)
+{
+ return class->class_kind == MONO_CLASS_GTD;
+}
+
+static inline gboolean
+mono_class_is_ginst (MonoClass *class)
+{
+ return class->class_kind == MONO_CLASS_GINST;
+}
+
+static inline gboolean
+mono_class_is_gparam (MonoClass *class)
+{
+ return class->class_kind == MONO_CLASS_GPARAM;
+}
+
+static inline gboolean
+mono_class_is_array (MonoClass *class)
+{
+ return class->class_kind == MONO_CLASS_ARRAY;
+}
+
+static inline gboolean
+mono_class_is_pointer (MonoClass *class)
+{
+ return class->class_kind == MONO_CLASS_POINTER;
+}
+
+
+#endif
\ No newline at end of file
gboolean
mono_class_has_failure (const MonoClass *klass);
+/*Now that everything has been defined, let's include the inline functions */
+#include <mono/metadata/class-inlines.h>
+
#endif /* __MONO_METADATA_CLASS_INTERNALS_H__ */
MonoGenericContainer*
mono_class_get_generic_container (MonoClass *klass)
{
- g_assert (klass->class_kind == MONO_CLASS_GTD);
+ g_assert (mono_class_is_gtd (klass));
return klass->generic_container;
}
MonoGenericClass*
mono_class_get_generic_class (MonoClass *klass)
{
- g_assert (klass->class_kind == MONO_CLASS_GINST);
+ g_assert (mono_class_is_ginst (klass));
return klass->generic_class;
}
for (method_slot_in_interface = 0; method_slot_in_interface < iface->method.count; method_slot_in_interface++) {
MonoMethod *method;
- if (slot_num >= 0 && iface->class_kind == MONO_CLASS_GINST) {
+ if (slot_num >= 0 && mono_class_is_ginst (iface)) {
/*
* The imt slot of the method is the same as for its declaring method,
* see the comment in mono_method_get_imt_slot (), so we can
finish_collect_stats ();
return ctx.list;
}
- if (!method->is_generic && method->klass->class_kind != MONO_CLASS_GTD && ctx.signature->has_type_parameters) {
+ if (!method->is_generic && !mono_class_is_gtd (method->klass) && ctx.signature->has_type_parameters) {
ADD_VERIFY_ERROR (&ctx, g_strdup_printf ("Method and signature don't match in terms of genericity"));
finish_collect_stats ();
return ctx.list;