Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 public void VerifyBlobEligibleToBeBetweenRecords()
 {
     Debug.Assert((_blob.Size() % 4) == 0);
 }