コード例 #1
0
 protected PathVariableVersionHandler(PathVariableVersionHandler other)
     : this()
 {
     this.startingNode = other.startingNode;
     this.callStack    = new Stack <LocalFlowVariableOverlay <int> >(
         other.callStack.Select(overlay => overlay.Clone()));
     this.variableVersions       = other.variableVersions.Clone(varInfo => varInfo.Clone());
     this.Path                   = other.Path;
     this.SmtContextHandler      = other.SmtContextHandler;
     this.callExtensionKindStack = new Stack <CallExtensionKind>(other.callExtensionKindStack.Reverse());
 }
コード例 #2
0
        public PathVariableVersionHandler(
            Path path,
            StartingNodeInfo startingNode,
            SmtContextHandler smtContextHandler)
            : this()
        {
            Contract.Requires(path != null);
            Contract.Requires(startingNode != null);
            Contract.Requires(smtContextHandler != null);

            this.startingNode           = startingNode;
            this.callStack              = new Stack <LocalFlowVariableOverlay <int> >();
            this.variableVersions       = new FlowGraphsVariableOverlay <VariableVersionInfo>(() => new VariableVersionInfo());
            this.callExtensionKindStack = new Stack <CallExtensionKind>();
            this.Path = path;
            this.SmtContextHandler = smtContextHandler;
        }