Skip to content

Latest commit

 

History

History
37 lines (19 loc) · 1.7 KB

ii.22.33-param-0x08.md

File metadata and controls

37 lines (19 loc) · 1.7 KB

II.22.33 Param: 0x08

The Param table has the following columns:

  • Flags (a 2-byte bitmask of type ParamAttributes, §II.23.1.13)

  • Sequence (a 2-byte constant)

  • Name (an index into the String heap)

Conceptually, every row in the Param table is owned by one, and only one, row in the MethodDef table.

The rows in the Param table result from the parameters in a method declaration (§II.15.4), or from a .param attribute attached to a method (§II.15.4.1.

This contains informative text only.

  1. Param table can contain zero or more rows

  2. Each row shall have one, and only one, owner row in the MethodDef table [ERROR]

  3. Flags shall have only those values set that are specified (all combinations valid) [ERROR]

  4. Sequence shall have a value ≥ 0 and ≤ number of parameters in owner method. A Sequence value of 0 refers to the owner method's return type; its parameters are then numbered from 1 onwards [ERROR]

  5. Successive rows of the Param table that are owned by the same method shall be ordered by increasing Sequence value – although gaps in the sequence are allowed [WARNING]

  6. If Flags.HasDefault = 1 then this row shall own exactly one row in the Constant table [ERROR]

  7. If Flags.HasDefault = 0, then there shall be no rows in the Constant table owned by this row [ERROR]

  8. If Flags.FieldMarshal = 1 then this row shall own exactly one row in the FieldMarshal table [ERROR]

  9. Name can be null or non-null

  10. If Name is non-null, then it shall index a non-empty string in the String heap [WARNING]

End informative text.