const char *culture;
const char *hash_value;
const guint8* public_key;
+ const char *public_tok_value;
guint32 hash_alg;
guint32 hash_len;
guint32 flags;
typedef struct {
int ref_count;
char *basedir;
+ gboolean in_gac;
MonoAssemblyName aname;
GModule *aot_module;
MonoImage *image;
/* Load files here */
- void *dynamic;
+ gboolean dynamic;
} MonoAssembly;
typedef struct {
MonoImage **modules;
+ MonoImage **files;
+
/*
* The Assembly this image was loaded from.
*/
*/
GHashTable *method_cache;
GHashTable *class_cache;
+ /*
+ * Indexed by fielddef and memberref tokens
+ */
+ GHashTable *field_cache;
- /* indexed by a generic type instantiation */
- GHashTable *generics_cache;
/* indexed by typespec tokens. */
GHashTable *typespec_cache;
+
+ /*
+ * Indexed by MonoGenericInst.
+ */
+ GHashTable *generic_inst_cache;
+
/*
* Indexes namespaces to hash tables that map class name to typedef token.
*/
* metadata engine
*/
void *user_info;
+
+ /* dll map entries */
+ GHashTable *dll_map;
+
+ /* Whenever this is a dynamically emitted module */
+ gboolean dynamic;
};
typedef enum {
MonoImage *mono_image_loaded_by_guid (const char *guid);
void mono_image_init (MonoImage *image);
void mono_image_close (MonoImage *image);
+void mono_image_addref (MonoImage *image);
const char *mono_image_strerror (MonoImageOpenStatus status);
int mono_image_ensure_section (MonoImage *image,
guint32 mono_image_get_entry_point (MonoImage *image);
const char *mono_image_get_resource (MonoImage *image, guint32 offset, guint32 *size);
+MonoImage* mono_image_load_file_for_image (MonoImage *image, int fileidx);
/* This actually returns a MonoPEResourceDataEntry *, but declaring it
* causes an include file loop.