Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / class.h
index f5da4b9c33f8e1415d2e136862384475d6e1bd04..4f6af697d8b103cb189af91c47a2eb44e3a6d0ea 100644 (file)
@@ -55,6 +55,9 @@ struct _MonoClass {
        guint valuetype       : 1; /* derives from System.ValueType */
        guint enumtype        : 1; /* derives from System.Enum */
        guint ghcimpl         : 1; /* class has its own GetHashCode 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;
 
        MonoClass  *parent;
@@ -117,12 +120,13 @@ struct _MonoClass {
 
        void *reflection_info;
 
-        MonoMethod *vtable [0];        
+        MonoMethod **vtable;   
 };
 
 typedef struct {
        MonoClass  *klass;
        MonoDomain *domain;  /* each object/vtable belongs to exactly one domain */
+       guint       max_interface_id;
         gpointer   *interface_offsets;   
         gpointer    data;
         gpointer    vtable [0];        
@@ -130,7 +134,6 @@ typedef struct {
 
 
 typedef gpointer (*MonoTrampoline)       (MonoMethod *method);
-typedef void     (*MonoRuntimeClassInit) (MonoClass *klass);
 
 MonoClass *
 mono_class_get             (MonoImage *image, guint32 type_token);
@@ -141,6 +144,9 @@ mono_class_init            (MonoClass *klass);
 MonoVTable *
 mono_class_vtable          (MonoDomain *domain, MonoClass *class);
 
+MonoVTable *
+mono_class_proxy_vtable    (MonoDomain *domain, MonoClass *class);
+
 void
 mono_class_setup_mono_type (MonoClass *class);
 
@@ -187,6 +193,6 @@ void
 mono_install_trampoline (MonoTrampoline func);
 
 void
-mono_install_runtime_class_init (MonoRuntimeClassInit func);
+mono_install_remoting_trampoline (MonoTrampoline func);
 
 #endif /* _MONO_CLI_CLASS_H_ */