public SymbolicVariable GetFreshSymbolic(Variable Origin, ExecutionState owner) { ++Requests; SymbolicVariableStack varStack = null; try { varStack = VariableStacks[Origin]; } catch (KeyNotFoundException) { // XXX: This is a little misleading the "Pool" doesn't use the owner argument // so the SymbolicVariableStack doesn't known about this owner varStack = new SymbolicVariableStack(() => Pool.GetFreshSymbolic(Origin, null)); VariableStacks.Add(Origin, varStack); } return(varStack.GetVariable(owner)); }
// Maybe use Modset instead of Procedure?? public SymbolicVariable GetFreshSymbolic(Procedure proc, int modSetIndex, ExecutionState owner) { ++Requests; SymbolicVariableStack modsetVarStack = null; var key = Tuple.Create(proc, modSetIndex); try { modsetVarStack = ModsetStacks[key]; } catch (KeyNotFoundException) { // XXX: This is a little misleading the "Pool" doesn't use the owner argument // so the SymbolicVariableStack doesn't known about this owner modsetVarStack = new SymbolicVariableStack(() => Pool.GetFreshSymbolic(proc, modSetIndex, null)); ModsetStacks.Add(key, modsetVarStack); } return(modsetVarStack.GetVariable(owner)); }
public SymbolicVariable GetFreshSymbolic(HavocCmd havocCmd, int varsIndex, ExecutionState owner) { ++Requests; SymbolicVariableStack havocVarStack = null; var key = Tuple.Create(havocCmd, varsIndex); try { havocVarStack = HavocCmdStacks[key]; } catch (KeyNotFoundException) { // XXX: This is a little misleading the "Pool" doesn't use the owner argument // so the SymbolicVariableStack doesn't known about this owner havocVarStack = new SymbolicVariableStack(() => Pool.GetFreshSymbolic(havocCmd, varsIndex, null)); HavocCmdStacks.Add(key, havocVarStack); } return(havocVarStack.GetVariable(owner)); }