projects
/
mono.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e27b73e
)
[sre] Expect a new token for MonoArrayMethod and SignatureHelper
author
Aleksey Kliger
<aleksey@xamarin.com>
Wed, 27 Sep 2017 22:30:13 +0000
(18:30 -0400)
committer
Marek Safar
<marek.safar@gmail.com>
Fri, 29 Sep 2017 09:01:31 +0000
(11:01 +0200)
mono/metadata/sre.c
patch
|
blob
|
history
diff --git
a/mono/metadata/sre.c
b/mono/metadata/sre.c
index b899c830e7898d960ad8418a4afb49c70ef2b882..29632463e1cc56df34012bab698632efa57ce917 100644
(file)
--- a/
mono/metadata/sre.c
+++ b/
mono/metadata/sre.c
@@
-1197,16
+1197,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);
/*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;
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);
} 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;
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);
}
} else {
g_error ("requested token for %s\n", klass->name);
}