示例#1
0
        public override int Get3ByteInt(long index, int offset)
        {
            long address  = address(index, offset);
            int  lowWord  = UnsafeUtil.getShort(address) & 0xFFFF;
            int  highByte = UnsafeUtil.getByte(address + Short.BYTES) & 0xFF;
            int  result   = lowWord | (highByte << (sizeof(short) * 8));

            return(result == 0xFFFFFF ? -1 : result);
        }
示例#2
0
        private short GetShort(long p)
        {
            if (UnsafeUtil.allowUnalignedMemoryAccess)
            {
                return(UnsafeUtil.getShort(p));
            }

            return(UnsafeUtil.getShortByteWiseLittleEndian(p));
        }