public void Read(ReaderContext ctxt, BlobReader reader, bool isFat, Func<OpCode, Row, object> resolveRow) { if (isFat) { Flags = (CorILExceptionClause)reader.ReadUInt32(); TryOffset = (int)reader.ReadUInt32(); TryLength = (int)reader.ReadUInt32(); HandlerOffset = (int)reader.ReadUInt32(); HandlerLength = (int)reader.ReadUInt32(); } else { Flags = (CorILExceptionClause)reader.ReadUInt16(); TryOffset = (int)reader.ReadUInt16(); TryLength = (int)reader.ReadByte(); HandlerOffset = (int)reader.ReadUInt16(); HandlerLength = (int)reader.ReadByte(); } var rowRef = default(TokenRef); rowRef.Read(ctxt, reader); rowRef.ResolveIndexes(ctxt); Class = rowRef.Value == null ? null : resolveRow(OpCode.Ldobj, rowRef.Value); if (Flags == CorILExceptionClause.Filter) FilterOffset = (int)reader.ReadUInt32(); }
public void Read(ReaderContext ctxt, BlobReader reader, bool isFat, Func <OpCode, Row, object> resolveRow) { if (isFat) { Flags = (CorILExceptionClause)reader.ReadUInt32(); TryOffset = (int)reader.ReadUInt32(); TryLength = (int)reader.ReadUInt32(); HandlerOffset = (int)reader.ReadUInt32(); HandlerLength = (int)reader.ReadUInt32(); } else { Flags = (CorILExceptionClause)reader.ReadUInt16(); TryOffset = (int)reader.ReadUInt16(); TryLength = (int)reader.ReadByte(); HandlerOffset = (int)reader.ReadUInt16(); HandlerLength = (int)reader.ReadByte(); } var rowRef = default(TokenRef); rowRef.Read(ctxt, reader); rowRef.ResolveIndexes(ctxt); Class = rowRef.Value == null ? null : resolveRow(OpCode.Ldobj, rowRef.Value); if (Flags == CorILExceptionClause.Filter) { FilterOffset = (int)reader.ReadUInt32(); } }