Пример #1
0
        public override bool HasSameExit(BasicBlock other)
        {
            var leavebb = other as LeaveCatchBasicBlock;

            return(leavebb != null && Catch.Body.Equals(leavebb.Catch.Body) && HandlerPopCount == leavebb.HandlerPopCount &&
                   Target.Equals(leavebb.Target));
        }
Пример #2
0
        public override bool HasSameExit(BasicBlock other)
        {
            var branchbb = other as BranchBasicBlock;

            return(branchbb != null && Target.Equals(branchbb.Target) && Fallthrough.Equals(branchbb.Fallthrough) &&
                   Test.Equals(branchbb.Test));
        }
Пример #3
0
 public void FixupTargets(BasicBlock origBlock, BasicBlock newBlock)
 {
     if (Body.Equals(origBlock))
     {
         Body = newBlock;
     }
 }
Пример #4
0
 public override void FixupTargets(BasicBlock origBlock, BasicBlock newBlock)
 {
     targetsCache = null;
     if (Body.Equals(origBlock))
     {
         Body = newBlock;
     }
     foreach (var h in Handlers)
     {
         h.FixupTargets(origBlock, newBlock);
     }
 }
Пример #5
0
 public override void FixupTargets(BasicBlock origBlock, BasicBlock newBlock)
 {
     for (var i = 0; i < CaseTargets.Count; i++)
     {
         if (CaseTargets[i].Equals(origBlock))
         {
             CaseTargets[i] = newBlock;
             targetsCache   = null;
         }
     }
     if (Fallthrough.Equals(origBlock))
     {
         Fallthrough  = newBlock;
         targetsCache = null;
     }
 }
Пример #6
0
        public override bool HasSameExit(BasicBlock other)
        {
            var leavebb = other as LeaveBasicBlock;

            return(leavebb != null && Target.Equals(leavebb.Target));
        }
Пример #7
0
        public override bool HasSameExit(BasicBlock other)
        {
            var jumpbb = other as JumpBasicBlock;

            return(jumpbb != null && Target.Equals(jumpbb.Target));
        }
Пример #8
0
        public override bool HasSameExit(BasicBlock other)
        {
            var rootbb = other as RootBasicBlock;

            return(rootbb != null && Entry.Equals(rootbb.Entry));
        }
Пример #9
0
        public override bool HasSameExit(BasicBlock other)
        {
            var loopbb = other as LoopCandidateBasicBlock;

            return(loopbb != null && Head.Equals(loopbb.Head) && Break.Equals(loopbb.Break));
        }
Пример #10
0
        public override bool Equals(object obj)
        {
            var edge = obj as BBEdge;

            return(edge != null && Source.Equals(edge.Source) && Target.Equals(edge.Target));
        }