public AnonymousDelegateRebuilder(DecompilationContext context, BlockStatement methodBodyBlock) { this.context = context; this.methodBodyBlock = methodBodyBlock; //this.variableCount = context.MethodContext.LambdaVariablesCount; if (context.MethodContext.FieldToExpression == null) { /// Create the map, when first needed. context.MethodContext.FieldToExpression = new Dictionary <FieldDefinition, Expression>(); } /// Use the passed by upper level map. this.fieldDefToAssignedValueMap = context.MethodContext.FieldToExpression; this.fieldVisitor = new FieldReferenceVisitor(methodBodyBlock); this.variableCopyFinder = new VariableCopyFinder(methodBodyBlock); this.assignmentsToRemove = new HashSet <Statement>(); this.closuresArchive = context.MethodContext.ClosureVariableToFieldValue; }
public AnonymousDelegateRebuilder(DecompilationContext context, BlockStatement methodBodyBlock) { this.context = context; this.methodBodyBlock = methodBodyBlock; //this.variableCount = context.MethodContext.LambdaVariablesCount; if (context.MethodContext.FieldToExpression == null) { /// Create the map, when first needed. context.MethodContext.FieldToExpression = new Dictionary<FieldDefinition, Expression>(); } /// Use the passed by upper level map. this.fieldDefToAssignedValueMap = context.MethodContext.FieldToExpression; this.fieldVisitor = new FieldReferenceVisitor(methodBodyBlock); this.variableCopyFinder = new VariableCopyFinder(methodBodyBlock); this.assignmentsToRemove = new HashSet<Statement>(); this.closuresArchive = context.MethodContext.ClosureVariableToFieldValue; }