Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / metadata / dynamic-image-internals.h
index e01216867b9567644df22e6d8bae74968cb6a294..bb1084e981ee9b3690626d5fe3bc44b2b25ce03b 100644 (file)
@@ -1,4 +1,5 @@
-/* 
+/**
+ * \file
  * Copyright 2016 Microsoft
  * Licensed under the MIT license. See LICENSE file in the project root for full license information.
  */
@@ -7,6 +8,7 @@
 
 #include <mono/metadata/object.h>
 #include <mono/metadata/metadata-internals.h>
+#include <mono/metadata/object-internals.h>
 
 typedef struct {
        guint32 import_lookup_table;
@@ -22,15 +24,24 @@ typedef struct {
 } 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);