struct _MonoClass {
MonoImage *image;
- guint32 type_token;
- guint dummy : 1; /* temorary hack */
+ /*
+ * relative numbering for fast type checking
+ */
+ unsigned int baseval;
+ unsigned int diffval;
+
+ /* The underlying type of the enum */
+ MonoType *enum_basetype;
+ /* element class for arrays and enum */
+ MonoClass *element_class;
+ /* array dimension */
+ guint32 rank;
+
guint inited : 1;
/* We use init_pending to detect cyclic calls to mono_class_init */
guint init_pending : 1;
guint size_inited : 1;
guint valuetype : 1; /* derives from System.ValueType */
guint enumtype : 1; /* derives from System.Enum */
+ guint blittable : 1; /* class is blittable */
+ 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;
+ guint packing_size : 4;
+ /* next byte */
guint ghcimpl : 1; /* class has its own GetHashCode impl */
guint has_finalize : 1; /* class has its own Finalize impl */
guint marshalbyref : 1; /* class is a MarshalByRefObject */
guint contextbound : 1; /* class is a ContextBoundObject */
guint delegate : 1; /* class is a Delegate */
- guint min_align : 4;
- guint packing_size : 4;
- guint blittable : 1; /* class is blittable */
- guint unicode : 1; /* class uses unicode char when marshalled */
+ guint dummy : 1; /* temorary hack */
MonoClass *parent;
MonoClass *nested_in;
GList *nested_classes;
GList *subclasses; /* list of all subclasses */
+ guint32 type_token;
const char *name;
const char *name_space;
int class_size;
int vtable_size; /* number of slots */
- /*
- * relative numbering for fast type checking
- */
- unsigned int baseval;
- unsigned int diffval;
-
/*
* From the TypeDef table
*/
MonoMethod **methods;
- /* The underlying type of the enum */
- MonoType *enum_basetype;
- /* element class for arrays and enum */
- MonoClass *element_class;
- /* array dimension */
- guint32 rank;
-
/* used as the type of the this argument and when passing the arg by value */
MonoType this_arg;
MonoType byval_arg;
void
mono_class_init (MonoClass *klass);
+void
+mono_class_layout_fields (MonoClass *klass);
+
+void
+mono_class_setup_vtable (MonoClass *klass);
+
MonoVTable *
-mono_class_vtable (MonoDomain *domain, MonoClass *class);
+mono_class_vtable (MonoDomain *domain, MonoClass *klass);
MonoVTable *
-mono_class_proxy_vtable (MonoDomain *domain, MonoClass *class);
+mono_class_proxy_vtable (MonoDomain *domain, MonoClass *klass);
void
-mono_class_setup_mono_type (MonoClass *class);
+mono_class_setup_mono_type (MonoClass *klass);
void
-mono_class_setup_parent (MonoClass *class, MonoClass *parent);
+mono_class_setup_parent (MonoClass *klass, MonoClass *parent);
MonoClass *
mono_class_from_name (MonoImage *image, const char* name_space, const char *name);
MonoClassField*
mono_field_from_token (MonoImage *image, guint32 token, MonoClass **retklass);
+MonoMethod**
+mono_class_get_overrides (MonoImage *image, guint32 type_token, gint32 *num_overrides);
+
MonoClass *
mono_array_class_get (MonoType *element_type, guint32 rank);
MonoClassField *
mono_class_get_field_from_name (MonoClass *klass, const char *name);
+MonoProperty*
+mono_class_get_property_from_name (MonoClass *klass, const char *name);
+
gint32
mono_array_element_size (MonoClass *ac);