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 {
* 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
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];
};
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;
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;
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;
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;
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__ */