2004-12-03 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mono / metadata / metadata-internals.h
index a0bad5523d4250989377806f711c567e3672bc0d..ea99c71b4d6af04ee8ba0ec183c671f681c1b502 100644 (file)
@@ -75,6 +75,7 @@ struct _MonoImage {
        MonoAssembly **references;
 
        MonoImage **modules;
+       guint32 module_count;
 
        MonoImage **files;
 
@@ -97,11 +98,7 @@ struct _MonoImage {
        GHashTable *typespec_cache;
        /* indexed by token */
        GHashTable *memberref_signatures;
-
-       /*
-        * Indexed by MonoGenericInst.
-        */
-       GHashTable *generic_inst_cache;
+       GHashTable *helper_signatures;
 
        /*
         * Indexes namespaces to hash tables that map class name to typedef token.
@@ -201,17 +198,19 @@ struct _MonoDynamicImage {
        MonoGHashTable *tokens;
        MonoGHashTable *blob_cache;
        GList *array_methods;
+       GPtrArray *gen_params;
        MonoGHashTable *token_fixups;
        MonoGHashTable *method_to_table_idx;
        MonoGHashTable *field_to_table_idx;
        MonoGHashTable *method_aux_hash;
        gboolean run;
        gboolean save;
+       gboolean initial_image;
+       guint32 pe_kind, machine;
        char *strong_name;
        guint32 strong_name_size;
        char *win32_res;
        guint32 win32_res_size;
-       MonoDynamicStream pefile;
        MonoDynamicStream sheap;
        MonoDynamicStream code; /* used to store method headers and bytecode */
        MonoDynamicStream resources; /* managed embedded resources */
@@ -222,6 +221,71 @@ struct _MonoDynamicImage {
        MonoDynamicTable tables [64];
 };
 
+MonoClass**
+mono_metadata_interfaces_from_typedef_full  (MonoImage             *image,
+                                            guint32                table_index,
+                                            guint                 *count,
+                                            MonoGenericContext    *context);
+
+MonoArrayType *
+mono_metadata_parse_array_full              (MonoImage             *image,
+                                            MonoGenericContainer  *generic_container,
+                                            const char            *ptr,
+                                            const char           **rptr);
+
+MonoType *
+mono_metadata_parse_type_full               (MonoImage             *image,
+                                            MonoGenericContainer  *generic_container,
+                                            MonoParseTypeMode      mode,
+                                            short                  opt_attrs,
+                                            const char            *ptr,
+                                            const char           **rptr);
+
+MonoType *
+mono_type_create_from_typespec_full         (MonoImage             *image,
+                                            MonoGenericContainer  *generic_container,
+                                            guint32                type_spec);
+
+MonoMethodSignature *
+mono_metadata_parse_signature_full          (MonoImage             *image,
+                                            MonoGenericContainer  *generic_container,
+                                            guint32                token);
+
+MonoMethodSignature *
+mono_metadata_parse_method_signature_full   (MonoImage             *image,
+                                            MonoGenericContainer  *generic_container,
+                                            int                     def,
+                                            const char             *ptr,
+                                            const char            **rptr);
+
+MonoMethodHeader *
+mono_metadata_parse_mh_full                 (MonoImage             *image,
+                                            MonoGenericContainer  *generic_container,
+                                            const char            *ptr);
+
+guint
+mono_metadata_generic_method_hash           (MonoGenericMethod     *gmethod);
+
+gboolean
+mono_metadata_generic_method_equal          (MonoGenericMethod     *g1,
+                                            MonoGenericMethod     *g2);
+
+MonoGenericInst *
+mono_metadata_parse_generic_inst            (MonoImage             *image,
+                                            MonoGenericContainer  *generic_container,
+                                            int                    count,
+                                            const char            *ptr,
+                                            const char           **rptr);
+
+MonoGenericInst *
+mono_metadata_lookup_generic_inst           (MonoGenericInst       *ginst);
+
+MonoGenericClass *
+mono_metadata_lookup_generic_class          (MonoGenericClass      *gclass);
+
+MonoGenericInst *
+mono_metadata_inflate_generic_inst          (MonoGenericInst       *ginst,
+                                            MonoGenericContext    *context);
 
 #endif /* __MONO_METADATA_INTERNALS_H__ */