X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fclass-internals.h;h=b62d6155f91e3bd40e6c204c16bfd1b4eb94143b;hb=fcca9846c82626dd094b2ca0c5f35991f8afc3a5;hp=dcd856692c28b2d71ab285e5d336f2118cffd8be;hpb=478db45ebddf19a2d13100a1024d40f57eeb7385;p=mono.git diff --git a/mono/metadata/class-internals.h b/mono/metadata/class-internals.h index dcd856692c2..b62d6155f91 100644 --- a/mono/metadata/class-internals.h +++ b/mono/metadata/class-internals.h @@ -529,8 +529,9 @@ struct _MonoMethodInflated { struct _MonoGenericClass { MonoClass *container_class; /* the generic type definition */ MonoGenericContext context; /* a context that contains the type instantiation doesn't contain any method instantiation */ /* FIXME: Only the class_inst member of "context" is ever used, so this field could be replaced with just a monogenericinst */ - guint is_dynamic : 1; /* We're a MonoDynamicGenericClass */ + guint is_dynamic : 1; /* Contains dynamic types */ guint is_tb_open : 1; /* This is the fully open instantiation for a type_builder. Quite ugly, but it's temporary.*/ + guint need_sync : 1; /* Only if dynamic. Need to be synchronized with its container class after its finished. */ MonoClass *cached_class; /* if present, the MonoClass corresponding to the instantiation. */ /* @@ -541,21 +542,6 @@ struct _MonoGenericClass { MonoImageSet *owner; }; -/* - * This is used when instantiating a generic type definition which is - * a TypeBuilder. - */ -struct _MonoDynamicGenericClass { - MonoGenericClass generic_class; - int count_fields; - MonoClassField *fields; - guint initialized; - /* The non-inflated types of the fields */ - MonoType **field_generic_types; - /* The managed objects representing the fields */ - MonoObject **field_objects; -}; - /* * A type parameter. */ @@ -573,6 +559,7 @@ struct _MonoGenericParam { }; /* Additional details about a MonoGenericParam */ +/* Keep in sync with managed Mono.RuntimeStructs.GenericParamInfo */ typedef struct { MonoClass *pklass; /* The corresponding `MonoClass'. */ const char *name; @@ -784,7 +771,7 @@ typedef struct { size_t imt_slots_with_collisions; size_t imt_max_collisions_in_slot; size_t imt_method_count_when_max_collisions; - size_t imt_thunks_size; + size_t imt_trampolines_size; size_t jit_info_table_insert_count; size_t jit_info_table_remove_count; size_t jit_info_table_lookup_count; @@ -1097,7 +1084,6 @@ typedef struct { MonoClass *fieldhandle_class; MonoClass *methodhandle_class; MonoClass *systemtype_class; - MonoClass *monotype_class; MonoClass *runtimetype_class; MonoClass *exception_class; MonoClass *threadabortexception_class; @@ -1403,7 +1389,7 @@ void mono_unload_interface_id (MonoClass *klass); GPtrArray* -mono_class_get_methods_by_name (MonoClass *klass, const char *name, guint32 bflags, gboolean ignore_case, gboolean allow_ctors, MonoException **ex); +mono_class_get_methods_by_name (MonoClass *klass, const char *name, guint32 bflags, gboolean ignore_case, gboolean allow_ctors, MonoError *error); char* mono_class_full_name (MonoClass *klass); @@ -1444,6 +1430,9 @@ mono_class_load_from_name (MonoImage *image, const char* name_space, const char MonoClass* mono_class_try_load_from_name (MonoImage *image, const char* name_space, const char *name); +void +mono_error_set_for_class_failure (MonoError *orerror, MonoClass *klass); + static inline guint8 mono_class_get_failure (MonoClass *klass) {