#define MONO_CLASS_IS_ARRAY(c) ((c)->rank)
+#define MONO_CLASS_HAS_STATIC_METADATA(klass) ((klass)->type_token && !(klass)->image->dynamic && !(klass)->generic_class)
+
#define MONO_DEFAULT_SUPERTABLE_SIZE 6
extern gboolean mono_print_vtable;
/* a field is ignored if it's named "_Deleted" and it has the specialname and rtspecialname flags set */
#define mono_field_is_deleted(field) (((field)->type->attrs & (FIELD_ATTRIBUTE_SPECIAL_NAME | FIELD_ATTRIBUTE_RT_SPECIAL_NAME)) \
- && (strcmp ((field)->name, "_Deleted") == 0))
+ && (strcmp (mono_field_get_name (field), "_Deleted") == 0))
typedef struct {
MonoClassField *field;
} MonoMarshalField;
typedef struct {
- guint32 native_size;
+ guint32 native_size, min_align;
guint32 num_fields;
MonoMethod *ptr_to_str;
MonoMethod *str_to_ptr;
guint unicode : 1; /* class uses unicode char when marshalled */
guint wastypebuilder : 1; /* class was created at runtime from a TypeBuilder */
/* next byte */
- guint min_align : 4;
+ guint8 min_align;
+ /* next byte */
guint packing_size : 4;
+ /* still 4 bits free */
/* next byte */
guint ghcimpl : 1; /* class has its own GetHashCode impl */
guint has_finalize : 1; /* class has its own Finalize impl */
guint32 exceptions_finallys;
guint32 exceptions_depth;
guint32 aspnet_requests_queued;
+ guint32 aspnet_requests;
/* Memory category */
guint32 gc_collections0;
guint32 gc_collections1;
MonoClass *
mono_class_get_generic_type_definition (MonoClass *klass) MONO_INTERNAL;
+gboolean
+mono_class_has_parent_and_ignore_generics (MonoClass *klass, MonoClass *parent) MONO_INTERNAL;
+
int
mono_method_get_vtable_slot (MonoMethod *method) MONO_INTERNAL;
int
mono_method_get_vtable_index (MonoMethod *method) MONO_INTERNAL;
+MonoMethod*
+mono_method_search_in_array_class (MonoClass *klass, const char *name, MonoMethodSignature *sig) MONO_INTERNAL;
+
+void
+mono_class_setup_interface_id (MonoClass *class) MONO_INTERNAL;
+
#endif /* __MONO_METADATA_CLASS_INTERBALS_H__ */