Exemple #1
0
 /// <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;
 }
Exemple #2
0
        /// <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());
        }
Exemple #3
0
 /// <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)
 {
 }
Exemple #4
0
 /// <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);