X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fclass-internals.h;h=c37b16bc49d3382653489a4a8e0abb8559d7e7ee;hb=cd0f05d6fd528c0f63327a908e2be2f4a9620933;hp=55eeb2c456747291a577ac062bd3b60cbb450a40;hpb=c53d2be908d1db28c7fa96bf62895117bc332e8f;p=mono.git diff --git a/mono/metadata/class-internals.h b/mono/metadata/class-internals.h index 55eeb2c4567..c37b16bc49d 100644 --- a/mono/metadata/class-internals.h +++ b/mono/metadata/class-internals.h @@ -83,7 +83,8 @@ struct _MonoMethod { unsigned int save_lmf:1; unsigned int dynamic:1; /* created & destroyed during runtime */ unsigned int is_inflated:1; /* whether we're a MonoMethodInflated */ - signed int slot : 21; + unsigned int skip_visibility:1; /* whenever to skip JIT visibility checks */ + signed int slot : 20; }; struct _MonoMethodNormal { @@ -301,8 +302,11 @@ struct _MonoClass { * Computed object instance size, total. */ int instance_size; - int class_size; int vtable_size; /* number of slots */ + union { + int class_size; /* size of area for static fields */ + int element_size; /* for array types */ + } sizes; /* * From the TypeDef table @@ -360,6 +364,7 @@ struct MonoVTable { guint8 rank; guint remote : 1; /* class is remotely activated */ guint initialized : 1; /* cctor has been run */ + guint init_failed : 1; /* cctor execution failed */ /* do not add any fields after vtable, the structure is dynamically extended */ gpointer vtable [MONO_ZERO_LEN_ARRAY]; }; @@ -542,7 +547,9 @@ typedef struct { typedef struct { gulong new_object_count; gulong initialized_class_count; + gulong generic_vtable_count; gulong used_class_count; + gulong method_count; gulong class_vtable_size; gulong class_static_data_size; gulong generic_instance_count; @@ -564,6 +571,8 @@ typedef gpointer (*MonoLookupDynamicToken) (MonoImage *image, guint32 token, Mon typedef gboolean (*MonoGetCachedClassInfo) (MonoClass *klass, MonoCachedClassInfo *res); +typedef gboolean (*MonoGetClassFromName) (MonoImage *image, const char *name_space, const char *name, MonoClass **res); + void mono_classes_init (void) MONO_INTERNAL; @@ -637,6 +646,9 @@ mono_install_lookup_dynamic_token (MonoLookupDynamicToken func) MONO_INTERNAL; void mono_install_get_cached_class_info (MonoGetCachedClassInfo func) MONO_INTERNAL; +void +mono_install_get_class_from_name (MonoGetClassFromName func) MONO_INTERNAL; + MonoInflatedGenericClass* mono_get_inflated_generic_class (MonoGenericClass *gclass) MONO_INTERNAL; @@ -699,10 +711,11 @@ typedef struct { MonoClass *runtimesecurityframe_class; MonoClass *executioncontext_class; MonoClass *internals_visible_class; - MonoClass *generic_array_class; + MonoClass *generic_ilist_class; MonoClass *generic_nullable_class; MonoClass *variant_class; MonoClass *com_object_class; + MonoClass *com_interop_proxy_class; } MonoDefaults; extern MonoDefaults mono_defaults MONO_INTERNAL; @@ -802,8 +815,17 @@ mono_type_get_full_name (MonoClass *class) MONO_INTERNAL; MonoArrayType *mono_dup_array_type (MonoArrayType *a) MONO_INTERNAL; MonoMethodSignature *mono_metadata_signature_deep_dup (MonoMethodSignature *sig) MONO_INTERNAL; +void +mono_image_init_name_cache (MonoImage *image); + gboolean mono_class_is_nullable (MonoClass *klass) MONO_INTERNAL; MonoClass *mono_class_get_nullable_param (MonoClass *klass) MONO_INTERNAL; +/* object debugging functions, for use inside gdb */ +void mono_object_describe (MonoObject *obj); +void mono_object_describe_fields (MonoObject *obj); +void mono_value_describe_fields (MonoClass* klass, const char* addr); +void mono_class_describe_statics (MonoClass* klass); + #endif /* __MONO_METADATA_CLASS_INTERBALS_H__ */