Ejemplo n.º 1
0
 public ControlFlowEdge(ControlFlowNode source, ControlFlowNode target) : this(source, target, JumpType.Normal)
 {
 }
Ejemplo n.º 2
0
 public ControlFlowEdge(ControlFlowNode source, ControlFlowNode target, JumpType type)
 {
     this.Source = source;
     this.Target = target;
     this.Type   = type;
 }
Ejemplo n.º 3
0
 void CreateEdge(ControlFlowNode fromNode, Label toLabel, JumpType type)
 {
     CreateEdge(fromNode, nodes.Single(n => n.Start != null && n.Start.Value.Address == toLabel.Address), type);
 }
Ejemplo n.º 4
0
 void CreateEdge(ControlFlowNode fromNode, Instruction toInstruction, JumpType type)
 {
     CreateEdge(fromNode, nodes.Single(n => n.Start != null && n.Start.Value == toInstruction), type);
 }
Ejemplo n.º 5
0
 public CopyFinallySubGraphLogic(ControlFlowGraphBuilder builder, ControlFlowNode start, ControlFlowNode end, ControlFlowNode newEnd)
 {
     this.builder = builder;
     this.start   = start;
     this.end     = end;
     this.newEnd  = newEnd;
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Creates a copy of all nodes pointing to 'end' and replaces those references with references to 'newEnd'.
 /// Nodes pointing to the copied node are copied recursively to update those references, too.
 /// This recursion stops at 'start'. The modified version of start is returned.
 /// </summary>
 ControlFlowNode CopyFinallySubGraph(ControlFlowNode start, ControlFlowNode end, ControlFlowNode newEnd)
 {
     return(new CopyFinallySubGraphLogic(this, start, end, newEnd).CopyFinallySubGraph());
 }