public int GetHashCode(RawLocalScopeRow obj) => (int)obj.Method + rol(obj.ImportScope, 3) + rol(obj.VariableList, 7) + rol(obj.ConstantList, 11) + rol(obj.StartOffset, 15) + rol(obj.Length, 19);
public bool Equals(RawLocalScopeRow x, RawLocalScopeRow y) => x.Method == y.Method && x.ImportScope == y.ImportScope && x.VariableList == y.VariableList && x.ConstantList == y.ConstantList && x.StartOffset == y.StartOffset && x.Length == y.Length;
/// <summary> /// Reads a raw <c>LocalScope</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 TryReadLocalScopeRow(uint rid, out RawLocalScopeRow row) { var table = LocalScopeTable; if (table.IsInvalidRID(rid)) { row = default; return(false); } var reader = table.DataReader; reader.Position = (rid - 1) * (uint)table.TableInfo.RowSize; row = new RawLocalScopeRow( table.Column0.Unsafe_Read24(ref reader), table.Column1.Unsafe_Read24(ref reader), table.Column2.Unsafe_Read24(ref reader), table.Column3.Unsafe_Read24(ref reader), reader.Unsafe_ReadUInt32(), reader.Unsafe_ReadUInt32()); return(true); }
static uint ReadLocalScopeColumnMethod(ref RawLocalScopeRow row, int index) => row[index];