Mono.Cecil.Cil.CodeWriter.ComputeStackSize C# (CSharp) Method

ComputeStackSize() static private method

static private ComputeStackSize ( Instruction instruction, int>.Dictionary &stack_sizes, int &stack_size, int &max_stack ) : void
instruction Instruction
stack_sizes int>.Dictionary
stack_size int
max_stack int
return void
        static void ComputeStackSize(Instruction instruction, ref Dictionary<Instruction, int> stack_sizes, ref int stack_size, ref int max_stack)
        {
            int computed_size;
            if (stack_sizes != null && stack_sizes.TryGetValue (instruction, out computed_size))
                stack_size = computed_size;

            max_stack = System.Math.Max (max_stack, stack_size);
            ComputeStackDelta (instruction, ref stack_size);
            max_stack = System.Math.Max (max_stack, stack_size);

            CopyBranchStackSize (instruction, ref stack_sizes, stack_size);
            ComputeStackSize (instruction, ref stack_size);
        }

Same methods

CodeWriter::ComputeStackSize ( Instruction instruction, int &stack_size ) : void

Usage Example

コード例 #1
0
        private void ComputeHeader()
        {
            int size = 0;
            Collection <Instruction> instructions = this.body.instructions;

            Instruction[] instructionArray = instructions.items;
            int           num  = instructions.size;
            int           num1 = 0;
            int           num2 = 0;
            Dictionary <Instruction, int> instructions1 = null;

            if (this.body.HasExceptionHandlers)
            {
                this.ComputeExceptionHandlerStackSize(ref instructions1);
            }
            for (int i = 0; i < num; i++)
            {
                Instruction instruction = instructionArray[i];
                instruction.offset = size;
                size += instruction.GetSize();
                CodeWriter.ComputeStackSize(instruction, ref instructions1, ref num1, ref num2);
            }
            this.body.code_size      = size;
            this.body.max_stack_size = num2;
        }
All Usage Examples Of Mono.Cecil.Cil.CodeWriter::ComputeStackSize