Author: marek
Date: 2008-02-20 13:10:29 -0500 (Wed, 20 Feb 2008)
New Revision: 96282

Modified:
   branches/mono-1-9/mcs/mcs/ChangeLog
   branches/mono-1-9/mcs/mcs/expression.cs
Log:
2008-02-20  Marek Safar  <[EMAIL PROTECTED]>
  
        A fix for bug #363218
        * expression.cs (ArrayCreation.Clone): Deal with multi-dimensional
        initializers.
        


Modified: branches/mono-1-9/mcs/mcs/ChangeLog
===================================================================
--- branches/mono-1-9/mcs/mcs/ChangeLog 2008-02-20 18:07:04 UTC (rev 96281)
+++ branches/mono-1-9/mcs/mcs/ChangeLog 2008-02-20 18:10:29 UTC (rev 96282)
@@ -1,3 +1,9 @@
+2008-02-20  Marek Safar  <[EMAIL PROTECTED]>
+  
+       A fix for bug #363218
+       * expression.cs (ArrayCreation.Clone): Deal with multi-dimensional
+       initializers.
+
 2008-01-25  Marek Safar  <[EMAIL PROTECTED]>
 
        * report.cs: Correctly reset warnings count after probing.

Modified: branches/mono-1-9/mcs/mcs/expression.cs
===================================================================
--- branches/mono-1-9/mcs/mcs/expression.cs     2008-02-20 18:07:04 UTC (rev 
96281)
+++ branches/mono-1-9/mcs/mcs/expression.cs     2008-02-20 18:10:29 UTC (rev 
96282)
@@ -5940,8 +5940,16 @@
 
                        if (initializers != null){
                                target.initializers = new ArrayList 
(initializers.Count);
-                               foreach (Expression initializer in initializers)
-                                       target.initializers.Add 
(initializer.Clone (clonectx));
+                               foreach (object initializer in initializers)
+                                       if (initializer is ArrayList) {
+                                               ArrayList this_al = 
(ArrayList)initializer;
+                                               ArrayList al = new ArrayList 
(this_al.Count);
+                                               target.initializers.Add (al);
+                                               foreach (Expression e in 
this_al)
+                                                       al.Add (e.Clone 
(clonectx));
+                                       } else {
+                                               target.initializers.Add 
(((Expression)initializer).Clone (clonectx));
+                                       }
                        }
                }
        }

_______________________________________________
Mono-patches maillist  -  Mono-patches@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to