Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksey Kliger <aleksey@xamarin.com>2017-09-28 01:30:13 +0300
committerMarek Safar <marek.safar@gmail.com>2017-10-06 12:12:06 +0300
commit72c4a0ca0847c2c16e984866b05050e56595e421 (patch)
tree8db18c11fcc4b2db264a75fbb1ec2a6d532d8f41
parent9685274a8af3683216d715e971ee24293a458212 (diff)
[sre] Expect a new token for MonoArrayMethod and SignatureHelper
-rw-r--r--mono/metadata/sre.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/mono/metadata/sre.c b/mono/metadata/sre.c
index 03bd8881ed8..eb06bcf72cf 100644
--- a/mono/metadata/sre.c
+++ b/mono/metadata/sre.c
@@ -1191,16 +1191,20 @@ mono_image_create_token (MonoDynamicImage *assembly, MonoObjectHandle obj,
/*g_print ("got token 0x%08x for %s\n", token, f->field->name);*/
} else if (strcmp (klass->name, "MonoArrayMethod") == 0) {
MonoReflectionArrayMethodHandle m = MONO_HANDLE_CAST (MonoReflectionArrayMethod, obj);
+ /* always returns a fresh token */
guint32 array_token = mono_image_get_array_token (assembly, m, error);
if (!is_ok (error))
goto leave;
token = array_token;
+ how_collide = MONO_DYN_IMAGE_TOK_NEW;
} else if (strcmp (klass->name, "SignatureHelper") == 0) {
MonoReflectionSigHelperHandle s = MONO_HANDLE_CAST (MonoReflectionSigHelper, obj);
+ /* always returns a fresh token */
guint32 sig_token = MONO_TOKEN_SIGNATURE | mono_image_get_sighelper_token (assembly, s, error);
if (!is_ok (error))
goto leave;
token = sig_token;
+ how_collide = MONO_DYN_IMAGE_TOK_NEW;
} else {
g_error ("requested token for %s\n", klass->name);
}