Mono.Cecil.Cil.CodeReader.PatchRawMethodBody C# (CSharp) Method

PatchRawMethodBody() public method

public PatchRawMethodBody ( MethodDefinition method, CodeWriter writer, int &code_size, MetadataToken &local_var_token ) : ByteBuffer
method MethodDefinition
writer CodeWriter
code_size int
local_var_token MetadataToken
return ByteBuffer
        public ByteBuffer PatchRawMethodBody(MethodDefinition method, CodeWriter writer, out int code_size, out MetadataToken local_var_token)
        {
            var position = MoveTo (method);

            var buffer = new ByteBuffer ();

            var flags = ReadByte ();

            switch (flags & 0x3) {
            case 0x2: // tiny
                buffer.WriteByte (flags);
                local_var_token = MetadataToken.Zero;
                code_size = flags >> 2;
                PatchRawCode (buffer, code_size, writer);
                break;
            case 0x3: // fat
                Advance (-1);
                PatchRawFatMethod (buffer, writer, out code_size, out local_var_token);
                break;
            default:
                throw new NotSupportedException ();
            }

            MoveBackTo (position);

            return buffer;
        }