public int decrypt(Blocks theBlocks) { try { blocks = theBlocks; callResults = new List<CallResult>(); allBlocks = new List<Block>(blocks.MethodBlocks.getAllBlocks()); findAllCallResults(); inlineAllCalls(); inlineReturnValues(); return callResults.Count; } finally { blocks = null; callResults = null; allBlocks = null; variableValues = null; } }
void getLocalVariableValue(VariableDefinition variable, out object value) { if (variableValues == null) variableValues = new VariableValues(blocks.Locals, allBlocks); var val = variableValues.getValue(variable); if (!val.isValid()) throw new ApplicationException("Could not get value of local variable"); value = val.Value; }
public void decrypt(Blocks theBlocks) { try { blocks = theBlocks; decryptCalls = new List<DecryptCall>(); allBlocks = new List<Block>(blocks.MethodBlocks.getAllBlocks()); findAllDecryptCalls(); decryptAllCalls(); restoreDecryptedStrings(); } finally { blocks = null; decryptCalls = null; allBlocks = null; variableValues = null; } }