[Pkg-mono-svn-commits] [SCM] mono branch, master, updated. debian/2.4.3+dfsg-1-3-g1076cf5

Jo Shields directhex at apebox.org
Wed Jan 6 18:09:39 UTC 2010


The following commit has been merged in the master branch:
commit 09bbf36484f8d3803182352b933f7baaa4f6220d
Author: Jo Shields <directhex at apebox.org>
Date:   Wed Jan 6 17:57:47 2010 +0000

    Fix IKVM FTBFS

diff --git a/debian/changelog b/debian/changelog
index 53ee82f..5479188 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+mono (2.4.3+dfsg-2) UNRELEASED; urgency=low
+
+  * debian/patches:dont_assert_on_empty_DGC_field_r146984.dpatch:
+    + Backport fix from upstream which causes IKVM to fail to build
+      (Closes: #562393)
+
+ -- Jo Shields <directhex at apebox.org>  Wed, 06 Jan 2010 17:56:22 +0000
+
 mono (2.4.3+dfsg-1) unstable; urgency=medium
 
   [ Jo Shields ]
diff --git a/debian/patches/00list b/debian/patches/00list
index 56b41bd..42a7b34 100644
--- a/debian/patches/00list
+++ b/debian/patches/00list
@@ -24,3 +24,4 @@ build_firebirdsql_as_2.0
 build_linker_tuner_cil-strip_as_2.0
 build_permview_as_2.0
 build_genxs_2.0
+dont_assert_on_empty_DGC_field_r146984
diff --git a/debian/patches/dont_assert_on_empty_DGC_field_r146984.dpatch b/debian/patches/dont_assert_on_empty_DGC_field_r146984.dpatch
new file mode 100755
index 0000000..5daea5b
--- /dev/null
+++ b/debian/patches/dont_assert_on_empty_DGC_field_r146984.dpatch
@@ -0,0 +1,43 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 99-unnamed.dpatch by  <directhex at desire>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+ at DPATCH@
+diff -urNad mono-2.4.2.3+dfsg~/mono/metadata/reflection.c mono-2.4.2.3+dfsg/mono/metadata/reflection.c
+--- mono-2.4.2.3+dfsg~/mono/metadata/reflection.c	2010-01-06 16:54:46.000000000 +0000
++++ mono-2.4.2.3+dfsg/mono/metadata/reflection.c	2010-01-06 16:58:17.000000000 +0000
+@@ -2576,16 +2576,29 @@
+ static MonoType*
+ get_field_on_inst_generic_type (MonoClassField *field)
+ {
++	MonoClass *class, *gtd;
+ 	MonoDynamicGenericClass *dgclass;
+ 	int field_index;
+ 
+ 	g_assert (is_field_on_inst (field));
+ 
+ 	dgclass = (MonoDynamicGenericClass*)field->parent->generic_class;
+-	field_index = field - dgclass->fields;
+ 
+-	g_assert (field_index >= 0 && field_index < dgclass->count_fields);
+-	return dgclass->field_generic_types [field_index];
++	if (field >= dgclass->fields && field - dgclass->fields < dgclass->count_fields) {
++		field_index = field - dgclass->fields;
++		return dgclass->field_generic_types [field_index];		
++	}
++
++	class = field->parent;
++	gtd = class->generic_class->container_class;
++
++	if (field >= class->fields && field - class->fields < class->field.count) {
++		field_index = field - class->fields;
++		return gtd->fields [field_index].type;
++	}
++
++	g_assert_not_reached ();
++	return 0;
+ }
+ 
+ static guint32

-- 
mono



More information about the Pkg-mono-svn-commits mailing list