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>(); }
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); }
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); }
public PTGNode(int id, ITypeReference type, uint offset = 0, PTGNodeKind kind = PTGNodeKind.Object) : this(id, kind) { this.Offset = offset; this.Type = type; }