예제 #1
0
 private static void AddSuccessorsToCount(ILogicalConstruct construct, Dictionary <CFGBlockLogicalConstruct, uint> numberOfHandlersLeavingToBlock)
 {
     V_0 = construct.get_CFGSuccessors().GetEnumerator();
     try
     {
         while (V_0.MoveNext())
         {
             V_1 = V_0.get_Current();
             if (numberOfHandlersLeavingToBlock.ContainsKey(V_1))
             {
                 stackVariable10 = numberOfHandlersLeavingToBlock;
                 V_2             = V_1;
                 stackVariable10.set_Item(V_2, stackVariable10.get_Item(V_2) + 1);
             }
             else
             {
                 numberOfHandlersLeavingToBlock.Add(V_1, 1);
             }
         }
     }
     finally
     {
         ((IDisposable)V_0).Dispose();
     }
     return;
 }
 private bool CanBePartOfComplexCondition(ILogicalConstruct node, HashSet <ILogicalConstruct> nodesInCondition, CFGBlockLogicalConstruct commonSuccessor)
 {
     if (node == null || node as ConditionLogicalConstruct == null || !this.ArePredecessorsLegal(node, nodesInCondition) || !node.get_CFGSuccessors().Contains(commonSuccessor))
     {
         return(false);
     }
     return(!nodesInCondition.Contains(node));
 }