コード例 #1
0
        public NativeHashtable(NativeParser parser)
        {
            uint header = parser.GetUInt8();

            _reader     = parser.Reader;
            _baseOffset = parser.Offset;

            int numberOfBucketsShift = (int)(header >> 2);

            if (numberOfBucketsShift > 31)
            {
                _reader.ThrowBadImageFormatException();
            }
            _bucketMask = (uint)((1 << numberOfBucketsShift) - 1);

            byte entryIndexSize = (byte)(header & 3);

            if (entryIndexSize > 2)
            {
                _reader.ThrowBadImageFormatException();
            }
            _entryIndexSize = entryIndexSize;
        }
コード例 #2
0
 public void ThrowBadImageFormatException()
 {
     _reader.ThrowBadImageFormatException();
 }
コード例 #3
0
 public static void ThrowBadImageFormatException()
 {
     NativeReader.ThrowBadImageFormatException();
 }
コード例 #4
0
 public void Decode(NativeReader reader)
 {
     if (reader.ReadUInt32(0) != Signature)
         reader.ThrowBadImageFormatException();
     reader.Read(4, out ScopeDefinitions);
 }
コード例 #5
0
        public NativeHashtable(NativeParser parser)
        {
            uint header = parser.GetUInt8();

            _reader = parser.Reader;
            _baseOffset = parser.Offset;

            int numberOfBucketsShift = (int)(header >> 2);
            if (numberOfBucketsShift > 31)
                _reader.ThrowBadImageFormatException();
            _bucketMask = (uint)((1 << numberOfBucketsShift) - 1);

            byte entryIndexSize = (byte)(header & 3);
            if (entryIndexSize > 2)
                _reader.ThrowBadImageFormatException();
            _entryIndexSize = entryIndexSize;
        }