Exemple #1
0
        private void ReadMethodBody()
        {
            this.MoveTo(this.method.RVA);
            byte b = base.ReadByte();

            switch (b & 3)
            {
            case 2:
                this.body.code_size    = b >> 2;
                this.body.MaxStackSize = 8;
                this.ReadCode();
                break;

            case 3:
                this.position--;
                this.ReadFatMethod();
                break;

            default:
                throw new InvalidOperationException();
            }
            ISymbolReader symbol_reader = this.reader.module.symbol_reader;

            if (symbol_reader != null)
            {
                Collection <Instruction> instructions = this.body.Instructions;
                symbol_reader.Read(this.body, (int offset) => CodeReader.GetInstruction(instructions, offset));
            }
        }
Exemple #2
0
 private Instruction GetInstruction(int offset)
 {
     return(CodeReader.GetInstruction(this.body.Instructions, offset));
 }