public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo-x86 commit in dev-lang/mono/files: mono-2.2-r123987-bless-crash.patch
@ 2009-01-25 13:23 Peter Alfredsen (loki_val)
  0 siblings, 0 replies; only message in thread
From: Peter Alfredsen (loki_val) @ 2009-01-25 13:23 UTC (permalink / raw
  To: gentoo-commits

loki_val    09/01/25 13:23:40

  Added:                mono-2.2-r123987-bless-crash.patch
  Log:
  Add fix for bug 256153, bless crash upstream bug 469213
  (Portage version: 2.2_rc23/cvs/Linux x86_64)

Revision  Changes    Path
1.1                  dev-lang/mono/files/mono-2.2-r123987-bless-crash.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/dev-lang/mono/files/mono-2.2-r123987-bless-crash.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/dev-lang/mono/files/mono-2.2-r123987-bless-crash.patch?rev=1.1&content-type=text/plain

Index: mono-2.2-r123987-bless-crash.patch
===================================================================
# 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;






^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2009-01-25 13:23 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-25 13:23 [gentoo-commits] gentoo-x86 commit in dev-lang/mono/files: mono-2.2-r123987-bless-crash.patch Peter Alfredsen (loki_val)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox