Author: martin
Date: 2005-05-02 12:40:35 -0400 (Mon, 02 May 2005)
New Revision: 43891

Modified:
   trunk/mcs/mcs/ChangeLog
   trunk/mcs/mcs/flowanalysis.cs
Log:
2005-05-02  Martin Baulig  <[EMAIL PROTECTED]>

        Fix #70182.

        * flowanalysis.cs (FlowBranching.UsageVector.MergeJumpOrigins):
        Also `And' the locals if the old vector is null.
        (FlowBranching.UsageVector.BitVector.And): Allow `vector' being
        null; in this case we basically reset all the variables.        



Modified: trunk/mcs/mcs/ChangeLog
===================================================================
--- trunk/mcs/mcs/ChangeLog     2005-05-02 16:40:08 UTC (rev 43890)
+++ trunk/mcs/mcs/ChangeLog     2005-05-02 16:40:35 UTC (rev 43891)
@@ -1,5 +1,14 @@
 2005-05-02  Martin Baulig  <[EMAIL PROTECTED]>
 
+       Fix #70182.
+
+       * flowanalysis.cs (FlowBranching.UsageVector.MergeJumpOrigins):
+       Also `And' the locals if the old vector is null.
+       (FlowBranching.UsageVector.BitVector.And): Allow `vector' being
+       null; in this case we basically reset all the variables.        
+
+2005-05-02  Martin Baulig  <[EMAIL PROTECTED]>
+
        Fix #74529.
 
        * flowanalysis.cs (FlowBranching.UsageVector.MergeBreakOrigins):

Modified: trunk/mcs/mcs/flowanalysis.cs
===================================================================
--- trunk/mcs/mcs/flowanalysis.cs       2005-05-02 16:40:08 UTC (rev 43890)
+++ trunk/mcs/mcs/flowanalysis.cs       2005-05-02 16:40:35 UTC (rev 43891)
@@ -764,7 +764,8 @@
 
                                for (UsageVector vector = o_vectors; vector != 
null;
                                     vector = vector.Next) {
-                                       Report.Debug (1, "    MERGING JUMP 
ORIGIN", vector);
+                                       Report.Debug (1, "  MERGING JUMP 
ORIGIN", vector,
+                                                     first, locals, 
vector.Locals);
 
                                        if (first) {
                                                if (locals != null && 
vector.Locals != null)
@@ -774,13 +775,15 @@
                                                        parameters.Or 
(vector.parameters);
                                                first = false;
                                        } else {
-                                               if (locals != null && 
vector.Locals != null)
+                                               if (locals != null)
                                                        locals.And 
(vector.locals);
                                                if (parameters != null)
                                                        parameters.And 
(vector.parameters);
                                        }
                                                
                                        Reachability.And (ref reachability, 
vector.Reachability, true);
+
+                                       Report.Debug (1, "  MERGING JUMP ORIGIN 
#1", vector);
                                }
 
                                Report.Debug (1, "  MERGING JUMP ORIGINS DONE", 
this);
@@ -2196,8 +2199,13 @@
                // </summary>
                public void And (MyBitVector new_vector)
                {
-                       BitArray new_array = new_vector.Vector;
+                       BitArray new_array;
 
+                       if (new_vector != null)
+                               new_array = new_vector.Vector;
+                       else
+                               new_array = new BitArray (Count, false);
+
                        initialize_vector ();
 
                        int lower, upper;

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to