Ejemplo n.º 1
0
 private void DeleteFrom(BasicBlock block, BasicBlock target, Set <BasicBlock> visited)
 {
     if (!visited.Contains(this) && !Equals(block))
     {
         visited.Add(this);
         for (var i = 0; i < Sources.Count; i++)
         {
             if (Sources[i].Equals(block))
             {
                 Sources.RemoveAt(i);
                 foreach (var s in block.Sources)
                 {
                     if (!Sources.Contains(s))
                     {
                         Sources.Add(s);
                     }
                 }
                 break;
             }
         }
         FixupTargets(block, target);
         foreach (var t in Targets)
         {
             t.DeleteFrom(block, target, visited);
         }
     }
 }