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;
            }
        }
示例#2
0
 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;
 }
示例#3
0
        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;
            }
        }