public override void Read() { TypeDataReader r = CreateReader(); UnderlyingType = r.ReadIndexedType32Lazy(); Attributes = new PointerAttributes(r.ReadUInt32()); }
public override void Read() { TypeDataReader r = CreateReader(); UnderlyingType = r.ReadIndexedType32Lazy(); Name = r.ReadCString(); }
public override void Read() { TypeDataReader r = CreateReader(); NumberOfEntries = r.ReadUInt16(); //round up 4 bits (descriptor size) int numberOfBytes = (int)Math.Ceiling((double)(4 * NumberOfEntries) / 8); byte[] descriptorsData = r.ReadBytes(numberOfBytes); Descriptors = new VTableShapeDescriptor[NumberOfEntries]; for (int i = 0; i < NumberOfEntries; i++) { byte data = descriptorsData[i / 2]; switch (i % 2) { case 0: data &= 0xF; break; case 1: data = (byte)((data >> 4) & 0xF); break; } Descriptors[i] = (VTableShapeDescriptor)data; } }
public override void Read() { TypeDataReader r = CreateReader(); r.ReadUInt16(); //padding PointerType = r.ReadIndexedTypeLazy(); }
public override void Read() { TypeDataReader r = CreateReader(); //// header Attributes = new PointerAttributes16(r.ReadUInt16()); UnderlyingType = r.ReadIndexedType16Lazy(); //// body switch (Attributes.PointerMode) { case PointerMode.Pointer: case PointerMode.Reference: switch (Attributes.PointerType) { case PointerType.BaseSeg: BaseSegment = r.ReadUInt16(); throw new NotImplementedException("LF_REFSYM"); break; case PointerType.BaseType: BaseType = r.ReadIndexedType16Lazy(); BaseTypeName = r.ReadString16(); break; } break; case PointerMode.PointerMember: case PointerMode.PointerFunction: ContainingClass = r.ReadIndexedType16Lazy(); MemberPointerType = r.ReadEnum <MemberPointerType>(); break; } }
public override void Read() { TypeDataReader r = CreateReader(); Attributes = new FieldAttributes(r.ReadUInt16()); TypeRecord = r.ReadIndexedType32Lazy(); Name = r.ReadCString(); }
public override void Read() { TypeDataReader r = CreateReader(); Attributes = new FieldAttributes(r.ReadUInt16()); Value = r.ReadVaryingType(out uint ILeafSize); FieldName = r.ReadCString(); }
public override void Read() { TypeDataReader r = CreateReader(); NumberOfOccurrences = r.ReadUInt16(); MethodListRecord = r.ReadIndexedType32Lazy(); Name = r.ReadCString(); }
public override void Read() { TypeDataReader r = CreateReader(); Attributes = new FieldAttributes(r.ReadUInt16()); BaseClassType = r.ReadIndexedType32Lazy(); Offset = r.ReadVaryingType(out uint dataSize); }
public override void Read() { TypeDataReader r = CreateReader(); UInt16 length = r.ReadUInt16(); byte[] data = r.ReadBytes((int)length); Value = Encoding.ASCII.GetString(data); }
public override void Read() { TypeDataReader r = CreateReader(); NumElements = r.ReadUInt16(); Properties = r.ReadFlagsEnum <TypeProperties>(); UnderlyingType = r.ReadIndexedTypeLazy(); FieldType = r.ReadIndexedTypeLazy(); Name = r.ReadCString(); }
public override void Read() { TypeDataReader r = CreateReader(); ReturnValueType = r.ReadIndexedType32Lazy(); CallingConvention = r.ReadEnum <CallingConvention>(); r.ReadByte(); //reserved NumberOfParameters = r.ReadUInt16(); ArgumentListType = r.ReadIndexedType32Lazy(); }
public override void Read() { TypeDataReader r = CreateReader(); NumberOfArguments = r.ReadUInt16(); r.ReadUInt16(); //padding ArgumentTypes = Enumerable.Range(1, NumberOfArguments) .Select(_ => r.ReadIndexedType32Lazy()) .ToArray(); }
public override void Read() { TypeDataReader r = CreateReader(); NumberOfElements = r.ReadUInt16(); Properties = r.ReadFlagsEnum <TypeProperties>(); FieldType = r.ReadIndexedType32Lazy(); StructSize = r.ReadVaryingType(out uint dataSize); Name = r.ReadCString(); }
public override void Read() { TypeDataReader r = CreateReader(); ElementType = r.ReadIndexedTypeLazy <T>(); IndexingType = r.ReadIndexedTypeLazy <T>(); Size = r.ReadVaryingType(out uint dataSize); Name = r.ReadCString(); }
public override void Read() { TypeDataReader r = CreateReader(); ReturnValueType = r.ReadIndexedTypeLazy(); ContainingClassType = r.ReadIndexedTypeLazy(); ThisPointerType = r.ReadIndexedTypeLazy(); CallingConvention = r.ReadEnum <CallingConvention>(); Attributes = r.ReadFlagsEnum <FunctionAttributes>(); NumberOfParameters = r.ReadUInt16(); ArgumentListType = r.ReadIndexedTypeLazy(); ThisAdjustor = r.ReadUInt32(); }
public override void Read() { TypeDataReader r = CreateReader(); Attributes = new FieldAttributes(r.ReadUInt16()); VirtualBaseClassType = r.ReadIndexedTypeLazy(); VirtualBasePointerType = r.ReadIndexedTypeLazy(); //virtual base pointer offset from address point OffsetFromAddress = r.ReadVaryingType(out uint dynSize1); //virtual base offset from vbtable OffsetFromTable = r.ReadVaryingType(out uint dynSize2); }
private IEnumerable <LeafContainerBase> ReadFields() { TypeDataReader r = CreateReader(); while (stream.Position + sizeof(UInt16) < stream.Length) { // We have to read the type directly to increase Stream.Position LeafContainerBase leaf = r.ReadTypeDirect(hasSize: false); if (leaf == null) { yield break; } yield return(leaf); } }
private IEnumerable <LeafContainerBase> ReadFields() { TypeDataReader r = CreateReader(); while (r.Position + sizeof(UInt16) < r.Length) { // we need to read the type Directly since we don't know how long it is LeafContainerBase leaf = r.ReadTypeDirect(hasSize: false); if (leaf == null) { yield break; } yield return(leaf); } }
public override void Read() { TypeDataReader r = CreateReader(); Attributes = new FieldAttributes(r.ReadUInt16()); ProcedureTypeRecord = r.ReadIndexedType32Lazy(); switch (Attributes.MethodProperties) { case MethodProperties.Intro: case MethodProperties.PureIntro: VBaseOffset = r.ReadUInt32(); break; default: VBaseOffset = 0; break; } }
public override void Read() { TypeDataReader r = CreateReader(); Referenced = r.ReadIndexedTypeLazy(); }
public override void Read() { TypeDataReader r = CreateReader(); Value = r.ReadUInt64(); }
public override void Read() { TypeDataReader r = CreateReader(); Value = r.ReadSingle(); }