-/*
+/**
+ * \file
* Copyright 2016 Microsoft
* Licensed under the MIT license. See LICENSE file in the project root for full license information.
*/
#include <mono/metadata/object.h>
#include <mono/metadata/metadata-internals.h>
+#include <mono/metadata/object-internals.h>
typedef struct {
guint32 import_lookup_table;
} MonoILT;
+typedef enum {
+ MONO_DYN_IMAGE_TOK_NEW, /* assert if same token is registered already */
+ MONO_DYN_IMAGE_TOK_SAME_OK, /* allow collision only with the same object */
+ MONO_DYN_IMAGE_TOK_REPLACE, /* keep the new object, always */
+} MonoDynamicImageTokCollision;
+
void
mono_dynamic_images_init (void);
void
-mono_dynamic_image_register_token (MonoDynamicImage *assembly, guint32 token, MonoObject *obj);
+mono_dynamic_image_register_token (MonoDynamicImage *assembly, guint32 token, MonoObjectHandle obj, int tok_collision);
gboolean
mono_dynamic_image_is_valid_token (MonoDynamicImage *image, guint32 token);
+MonoObjectHandle
+mono_dynamic_image_get_registered_token (MonoDynamicImage *dynimage, guint32 token, MonoError *error);
+
MonoDynamicImage*
mono_dynamic_image_create (MonoDynamicAssembly *assembly, char *assembly_name, char *module_name);