private void MarkPartitioningVertices(int startInstructionBlockIndex) { V_0 = this.cfg.get_Blocks()[startInstructionBlockIndex]; V_1 = this.FindMostDistantSuccessor(V_0); if (InstructionBlock.op_Equality(V_1, null)) { return; } if (V_1.get_Index() == this.cfg.get_Blocks().Count <InstructionBlock>() - 1) { return; } V_2 = null; V_3 = V_0.get_Index() + 1; while (V_3 <= V_1.get_Index()) { if (!InstructionBlock.op_Equality(V_2, null)) { V_4 = this.FindMostDistantSuccessor(this.cfg.get_Blocks()[V_3]); if (V_4.get_Index() > V_2.get_Index()) { V_2 = V_4; } } else { V_2 = this.FindMostDistantSuccessor(this.cfg.get_Blocks()[V_3]); } V_3 = V_3 + 1; } if ((long)V_1.get_Index() < (ulong)this.mostDistantInstructionBlockIndexReached) { if (InstructionBlock.op_Inequality(V_2, null) && (long)V_2.get_Index() > (ulong)this.mostDistantInstructionBlockIndexReached) { this.mostDistantInstructionBlockIndexReached = V_2.get_Index(); } } else { if (!InstructionBlock.op_Inequality(V_2, null)) { this.verticesThatPartitionGraph.Add(V_1); } else { if (V_2.get_Index() <= V_1.get_Index()) { this.verticesThatPartitionGraph.Add(V_1); } } } this.MarkPartitioningVertices(V_1.get_Index()); return; }
public void RemoveFromSuccessors(InstructionBlock toBeRemoved) { V_0 = new InstructionBlock[(int)this.get_Successors().Length - 1]; V_1 = 0; V_2 = 0; while (V_1 < (int)this.get_Successors().Length) { if (InstructionBlock.op_Inequality(this.get_Successors()[V_1], toBeRemoved)) { stackVariable24 = V_2; V_2 = stackVariable24 + 1; V_0[stackVariable24] = this.get_Successors()[V_1]; } V_1 = V_1 + 1; } this.set_Successors(V_0); return; }