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

Modified:
   trunk/mcs/gmcs/ChangeLog
   trunk/mcs/gmcs/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/gmcs/ChangeLog
===================================================================
--- trunk/mcs/gmcs/ChangeLog    2005-05-02 15:53:36 UTC (rev 43889)
+++ trunk/mcs/gmcs/ChangeLog    2005-05-02 16:40:08 UTC (rev 43890)
@@ -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/gmcs/flowanalysis.cs
===================================================================
--- trunk/mcs/gmcs/flowanalysis.cs      2005-05-02 15:53:36 UTC (rev 43889)
+++ trunk/mcs/gmcs/flowanalysis.cs      2005-05-02 16:40:08 UTC (rev 43890)
@@ -761,23 +761,26 @@
 
                                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)
-                                               locals.Or (vector.locals);
+                                                       locals.Or 
(vector.locals);
                                                
                                                if (parameters != null)
                                                        parameters.Or 
(vector.parameters);
                                                first = false;
                                        } else {
-                                               if (locals != null && 
vector.Locals != null)
-                                       locals.And (vector.locals);
-                                       if (parameters != null)
-                                               parameters.And 
(vector.parameters);
-                               }
+                                               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);
@@ -2197,8 +2200,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