Author: marek
Date: 2008-02-20 13:05:44 -0500 (Wed, 20 Feb 2008)
New Revision: 96280

Modified:
   trunk/mcs/mcs/ChangeLog
   trunk/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: trunk/mcs/mcs/ChangeLog
===================================================================
--- trunk/mcs/mcs/ChangeLog     2008-02-20 17:55:59 UTC (rev 96279)
+++ trunk/mcs/mcs/ChangeLog     2008-02-20 18:05:44 UTC (rev 96280)
@@ -1,5 +1,11 @@
 2008-02-20  Marek Safar  <[EMAIL PROTECTED]>
 
+       A fix for bug #363218
+       * expression.cs (ArrayCreation.Clone): Deal with multi-dimensional
+       initializers.
+       
+2008-02-20  Marek Safar  <[EMAIL PROTECTED]>
+
        * expression.cs, constant.cs, cfold.cs: Yet another side-effect constant
        update. This time to deal correctly with SideEffectConstant expression 
used
        as an argument for another constant folding.

Modified: trunk/mcs/mcs/expression.cs
===================================================================
--- trunk/mcs/mcs/expression.cs 2008-02-20 17:55:59 UTC (rev 96279)
+++ trunk/mcs/mcs/expression.cs 2008-02-20 18:05:44 UTC (rev 96280)
@@ -5939,8 +5939,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