Пример #1
0
        /// <summary>
        /// Reads a raw <c>LocalVariable</c> row or returns false if the row doesn't exist
        /// </summary>
        /// <param name="rid">Row ID</param>
        /// <param name="row">Row data</param>
        /// <returns></returns>
        public bool TryReadLocalVariableRow(uint rid, out RawLocalVariableRow row)
        {
            var table = LocalVariableTable;

            if (table.IsInvalidRID(rid))
            {
                row = default;
                return(false);
            }
            var reader = table.DataReader;

            reader.Position = (rid - 1) * (uint)table.TableInfo.RowSize;
            row             = new RawLocalVariableRow(
                reader.Unsafe_ReadUInt16(),
                reader.Unsafe_ReadUInt16(),
                table.Column2.Unsafe_Read24(ref reader));
            return(true);
        }
Пример #2
0
 public int GetHashCode(RawLocalVariableRow obj) =>
 obj.Attributes +
 rol(obj.Index, 3) +
 rol(obj.Name, 7);
Пример #3
0
 public bool Equals(RawLocalVariableRow x, RawLocalVariableRow y) =>
 x.Attributes == y.Attributes &&
 x.Index == y.Index &&
 x.Name == y.Name;
Пример #4
0
 static uint ReadLocalVariableColumnMethod(ref RawLocalVariableRow row, int index) => row[index];