public uint GetSimpleArrayTypeIndex(uint elementType, uint elementSize) { uint simpleArrayTypeIndex = _blob.GetNextTypeIndex(); TypeRecordsBlob simpleArrayDataBlob = new TypeRecordsBlob(); simpleArrayDataBlob.WriteLeafKind(LeafKind.LF_ARRAY); simpleArrayDataBlob.WriteDWORD(elementType); simpleArrayDataBlob.WriteDWORD((uint)PrimitiveTypeDescriptor.TYPE_ENUM.T_INT4); simpleArrayDataBlob.WriteNumericLeaf(elementSize); simpleArrayDataBlob.WriteString(""); uint recordSize = simpleArrayDataBlob.Size() + 2; _blob.WriteWORD(checked ((ushort)(_blob.DWORDAlignedSize(recordSize) - 2))); // don't include size of 'length' in 'length' _blob.WriteBuffer(simpleArrayDataBlob); _blob.AlignToDWORD(); VerifyBlobEligibleToBeBetweenRecords(); return(simpleArrayTypeIndex); }
public void VerifyBlobEligibleToBeBetweenRecords() { Debug.Assert((_blob.Size() % 4) == 0); }