Ejemplo n.º 1
0
 public PTGNode(int id, PTGNodeKind kind = PTGNodeKind.Null)
 {
     this.Id        = id;
     this.Kind      = kind;
     this.Variables = new HashSet <IVariable>();
     this.Sources   = new MapSet <IFieldReference, PTGNode>();
     this.Targets   = new MapSet <IFieldReference, PTGNode>();
 }
Ejemplo n.º 2
0
        private PTGNode NewNode(SimplePointsToGraph ptg, PTGID ptgID, IType type, PTGNodeKind kind = PTGNodeKind.Object)
        {
            PTGNode node;

            node = new PTGNode(ptgID, type, kind);
            //node = ptg.GetNode(ptgID, type, kind);
            return(node);
        }
Ejemplo n.º 3
0
        private PTGNode GetNode(PointsToGraph ptg, uint offset, ITypeReference type, PTGNodeKind kind = PTGNodeKind.Object)
        {
            PTGNode node;

            if (nodeIdAtOffset.ContainsKey(offset))
            {
                var nodeId = nodeIdAtOffset[offset];
                node = ptg.GetNode(nodeId);
            }
            else
            {
                var nodeId = nextPTGNodeId++;
                node = new PTGNode(nodeId, type, offset, kind);

                ptg.Add(node);
                nodeIdAtOffset.Add(offset, nodeId);
            }

            return(node);
        }
Ejemplo n.º 4
0
 public PTGNode(int id, ITypeReference type, uint offset = 0, PTGNodeKind kind = PTGNodeKind.Object)
     : this(id, kind)
 {
     this.Offset = offset;
     this.Type   = type;
 }