/// <summary> /// Constructor /// </summary> /// <param name="opResolver">The operand resolver</param> /// <param name="codeReader">A reader positioned at the start of a .NET method body</param> /// <param name="ehReader">Exception handler reader or <c>null</c> if exceptions aren't /// present or if <paramref name="codeReader"/> contains the exception handlers</param> /// <param name="parameters">Method parameters</param> /// <param name="gpContext">Generic parameter context</param> /// <param name="context">Module context</param> public MethodBodyReader(IInstructionOperandResolver opResolver, DataReader codeReader, DataReader?ehReader, IList <Parameter> parameters, GenericParamContext gpContext, ModuleContext context) : base(codeReader, parameters, context) { this.opResolver = opResolver; exceptionsReader = ehReader; this.gpContext = gpContext; startOfHeader = uint.MaxValue; }
/// <summary> /// Creates a CIL method body or returns an empty one if <paramref name="codeReader"/> doesn't /// point to the start of a valid CIL method body. /// </summary> /// <param name="opResolver">The operand resolver</param> /// <param name="codeReader">A reader positioned at the start of a .NET method body</param> /// <param name="ehReader">Exception handler reader or <c>null</c> if exceptions aren't /// present or if <paramref name="codeReader"/> contains the exception handlers</param> /// <param name="parameters">Method parameters</param> /// <param name="gpContext">Generic parameter context</param> /// <param name="context">The module context</param> public static CilBody CreateCilBody(IInstructionOperandResolver opResolver, DataReader codeReader, DataReader?ehReader, IList <Parameter> parameters, GenericParamContext gpContext, ModuleContext context) { var mbReader = new MethodBodyReader(opResolver, codeReader, ehReader, parameters, gpContext, context); if (!mbReader.Read()) { return(new CilBody()); } return(mbReader.CreateCilBody()); }
/// <summary> /// Constructor /// </summary> /// <param name="opResolver">The operand resolver</param> /// <param name="codeReader">A reader positioned at the start of a .NET method body</param> /// <param name="ehReader">Exception handler reader or <c>null</c> if exceptions aren't /// present or if <paramref name="codeReader"/> contains the exception handlers</param> /// <param name="parameters">Method parameters</param> /// <param name="gpContext">Generic parameter context</param> public MethodBodyReader(IInstructionOperandResolver opResolver, DataReader codeReader, DataReader?ehReader, IList <Parameter> parameters, GenericParamContext gpContext) : this(opResolver, codeReader, ehReader, parameters, gpContext, null) { }
/// <summary> /// Creates a CIL method body or returns an empty one if <paramref name="codeReader"/> doesn't /// point to the start of a valid CIL method body. /// </summary> /// <param name="opResolver">The operand resolver</param> /// <param name="codeReader">A reader positioned at the start of a .NET method body</param> /// <param name="ehReader">Exception handler reader or <c>null</c> if exceptions aren't /// present or if <paramref name="codeReader"/> contains the exception handlers</param> /// <param name="parameters">Method parameters</param> /// <param name="gpContext">Generic parameter context</param> public static CilBody CreateCilBody(IInstructionOperandResolver opResolver, DataReader codeReader, DataReader?ehReader, IList <Parameter> parameters, GenericParamContext gpContext) => CreateCilBody(opResolver, codeReader, ehReader, parameters, gpContext, null);