[Pkg-mono-svn-commits] [SCM] mono branch, master, updated. 2.0.1-6-92-g5f57dc0

Mirco Bauer meebey at meebey.net
Mon May 25 18:13:03 UTC 2009


The following commit has been merged in the master branch:
commit f4945aa62cc82497c9e8ffb9297e9ebaa86ee88a
Author: Mirco Bauer <meebey at meebey.net>
Date:   Tue May 19 00:15:10 2009 +0200

      * debian/patches/fix_recursive_unmanaged_types.dpatch:
        + Fixes recursive structs regression as seen with OpenOffice.org.

diff --git a/debian/changelog b/debian/changelog
index add32f2..6a7d9fc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -63,6 +63,8 @@ mono (2.4+dfsg-1~pre1) unstable; urgency=low
     + Updated mono-shlib-cop and sqlsharp as they are now CLI 2.0
   * debian/patches/fix_mod_script.dpatch:
     + Run mod and monodoc on CLI 2.0.
+  * debian/patches/fix_recursive_unmanaged_types.dpatch:
+    + Fixes recursive structs regression as seen with OpenOffice.org.
 
  -- Mirco Bauer <meebey at debian.org>  Wed, 13 May 2009 01:40:02 +0200
 
diff --git a/debian/patches/00list b/debian/patches/00list
index 1b2c236..09bbb6b 100644
--- a/debian/patches/00list
+++ b/debian/patches/00list
@@ -13,3 +13,4 @@ disable_building_convert.exe
 disable_building_RabbitMQ.Client.dll
 build_genxs_2.0
 fix_mod_script
+fix_recursive_unmanaged_types
diff --git a/debian/patches/fix_recursive_unmanaged_types.dpatch b/debian/patches/fix_recursive_unmanaged_types.dpatch
new file mode 100755
index 0000000..3da05c1
--- /dev/null
+++ b/debian/patches/fix_recursive_unmanaged_types.dpatch
@@ -0,0 +1,52 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## fix_recursive_unmanaged_types.dpatch by Mirco Bauer <meebey at debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Patch takes from upstream's SVN, revision 132861
+## DP: 2009-04-28  Marek Safar  <marek.safar at gmail.com>
+## DP: A fix for bug #495112
+## DP: * class.cs (IsUnmanagedType): Handle recursive unmanaged types using
+## DP:   local cache.
+			
+ at DPATCH@
+diff -urNad mono-2.4+dfsg~/mcs/mcs/class.cs mono-2.4+dfsg/mcs/mcs/class.cs
+--- mono-2.4+dfsg~/mcs/mcs/class.cs	2009-03-09 17:52:16.000000000 +0100
++++ mono-2.4+dfsg/mcs/mcs/class.cs	2009-05-19 00:10:18.000000000 +0200
+@@ -2914,6 +2914,9 @@
+ 	}
+ 
+ 	public sealed class Struct : ClassOrStruct {
++
++		bool is_unmanaged, has_unmanaged_check_done;
++
+ 		// <summary>
+ 		//   Modifiers allowed in a struct declaration
+ 		// </summary>
+@@ -2973,6 +2976,11 @@
+ 			if (requires_delayed_unmanagedtype_check)
+ 				return true;
+ 
++			if (has_unmanaged_check_done)
++				return is_unmanaged;
++
++			has_unmanaged_check_done = true;
++
+ 			foreach (FieldBase f in fields) {
+ 				if ((f.ModFlags & Modifiers.STATIC) != 0)
+ 					continue;
+@@ -2981,6 +2989,7 @@
+ 				// struct S { S* s; }
+ 				Type mt = f.MemberType;
+ 				if (mt == null) {
++					has_unmanaged_check_done = false;
+ 					requires_delayed_unmanagedtype_check = true;
+ 					return true;
+ 				}
+@@ -2997,6 +3006,7 @@
+ 				return false;
+ 			}
+ 
++			is_unmanaged = true;
+ 			return true;
+ 		}
+ 

-- 
mono



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