diff options
author | Peter Alfredsen <loki_val@gentoo.org> | 2009-01-25 13:23:40 +0000 |
---|---|---|
committer | Peter Alfredsen <loki_val@gentoo.org> | 2009-01-25 13:23:40 +0000 |
commit | 5589391bdd240a3e9b0bb6871b9e56e2c0c0a844 (patch) | |
tree | 650be701993dab4bf3aa86775a56c82a66286e3b /dev-lang/mono/files | |
parent | Remove warning about hardened from latest open-vm-tools. Closes bug 200376. (diff) | |
download | gentoo-2-5589391bdd240a3e9b0bb6871b9e56e2c0c0a844.tar.gz gentoo-2-5589391bdd240a3e9b0bb6871b9e56e2c0c0a844.tar.bz2 gentoo-2-5589391bdd240a3e9b0bb6871b9e56e2c0c0a844.zip |
Add fix for bug 256153, bless crash upstream bug 469213
(Portage version: 2.2_rc23/cvs/Linux x86_64)
Diffstat (limited to 'dev-lang/mono/files')
-rw-r--r-- | dev-lang/mono/files/mono-2.2-r123987-bless-crash.patch | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/dev-lang/mono/files/mono-2.2-r123987-bless-crash.patch b/dev-lang/mono/files/mono-2.2-r123987-bless-crash.patch new file mode 100644 index 000000000000..1be03542a375 --- /dev/null +++ b/dev-lang/mono/files/mono-2.2-r123987-bless-crash.patch @@ -0,0 +1,31 @@ +# http://gna.org/bugs/?12900 +# https://bugzilla.novell.com/show_bug.cgi?id=469213 +# http://bugs.gentoo.org/show_bug.cgi?id=256153 + +Index: mono/mono/mini/method-to-ir.c +=================================================================== +--- mono/mono/mini/method-to-ir.c (revision 123986) ++++ mono/mono/mini/method-to-ir.c (revision 123987) +@@ -5839,7 +5839,21 @@ + cmethod = (MonoMethod *)mono_method_get_wrapper_data (method, token); + cil_method = cmethod; + } else if (constrained_call) { +- cmethod = mono_get_method_constrained (image, token, constrained_call, generic_context, &cil_method); ++ if ((constrained_call->byval_arg.type == MONO_TYPE_VAR || constrained_call->byval_arg.type == MONO_TYPE_MVAR) && cfg->generic_sharing_context) { ++ /* This is needed when using aot + generic sharing, since ++ * the AOT code allows generic sharing for methods with ++ * type parameters having constraints, and ++ * get_method_constrained can't find the method in klass ++ * representing a type var. ++ * The type var is guaranteed to be a reference type in this ++ * case. ++ */ ++ cmethod = mini_get_method (cfg, method, token, NULL, generic_context); ++ cil_method = cmethod; ++ g_assert (!cmethod->klass->valuetype); ++ } else { ++ cmethod = mono_get_method_constrained (image, token, constrained_call, generic_context, &cil_method); ++ } + } else { + cmethod = mini_get_method (cfg, method, token, NULL, generic_context); + cil_method = cmethod; |