Merge pull request #4621 from alexanderkyte/strdup_env
[mono.git] / mono / metadata / metadata-internals.h
index a529a3f3642e559dd4a16463e6ce6e930018c871..3ed3136236cc98661bb1758e92879596222f332a 100644 (file)
@@ -1,3 +1,6 @@
+/**
+ * \file
+ */
 
 #ifndef __MONO_METADATA_INTERNALS_H__
 #define __MONO_METADATA_INTERNALS_H__
@@ -212,6 +215,9 @@ struct _MonoImage {
        /* Whenever this image contains metadata only without PE data */
        guint8 metadata_only : 1;
 
+       /*  Whether this image belongs to load-from context */
+       guint8 load_from_context: 1;
+
        guint8 checked_module_cctor : 1;
        guint8 has_module_cctor : 1;
 
@@ -248,6 +254,10 @@ struct _MonoImage {
                            
        const char          *tables_base;
 
+       /* For PPDB files */
+       guint64 referenced_tables;
+       int *referenced_table_rows;
+
        /**/
        MonoTableInfo        tables [MONO_TABLE_NUM];
 
@@ -499,7 +509,6 @@ struct _MonoDynamicImage {
        GHashTable *method_aux_hash;
        GHashTable *vararg_aux_hash;
        MonoGHashTable *generic_def_objects;
-       MonoGHashTable *methodspec;
        /*
         * Maps final token values to the object they describe.
         */
@@ -639,6 +648,12 @@ mono_image_alloc0 (MonoImage *image, guint size);
 char*
 mono_image_strdup (MonoImage *image, const char *s);
 
+char*
+mono_image_strdup_vprintf (MonoImage *image, const char *format, va_list args);
+
+char*
+mono_image_strdup_printf (MonoImage *image, const char *format, ...) MONO_ATTR_FORMAT_PRINTF(2,3);;
+
 GList*
 g_list_prepend_image (MonoImage *image, GList *list, gpointer data);
 
@@ -770,6 +785,9 @@ MonoGenericInst *
 mono_metadata_get_generic_inst              (int                   type_argc,
                                             MonoType             **type_argv);
 
+MonoGenericInst *
+mono_metadata_get_canonical_generic_inst    (MonoGenericInst *candidate);
+
 MonoGenericClass *
 mono_metadata_lookup_generic_class          (MonoClass            *gclass,
                                             MonoGenericInst       *inst,
@@ -806,6 +824,10 @@ mono_assembly_name_parse_full                   (const char           *name,
                                              gboolean *is_version_defined,
                                                  gboolean *is_token_defined);
 
+gboolean
+mono_assembly_fill_assembly_name_full (MonoImage *image, MonoAssemblyName *aname, gboolean copyBlobs);
+
+
 MONO_API guint32 mono_metadata_get_generic_param_row (MonoImage *image, guint32 token, guint32 *owner);
 
 void mono_unload_interface_ids (MonoBitSet *bitset);
@@ -912,5 +934,14 @@ mono_image_set_description (MonoImageSet *);
 MonoImageSet *
 mono_find_image_set_owner (void *ptr);
 
+void
+mono_loader_register_module (const char *name, MonoDl *module);
+
+gboolean
+mono_assembly_is_problematic_version (const char *name, guint16 major, guint16 minor, guint16 build, guint16 revision);
+
+void
+mono_ginst_get_desc (GString *str, MonoGenericInst *ginst);
+
 #endif /* __MONO_METADATA_INTERNALS_H__ */