private short getShort( long p ) { if ( UnsafeUtil.allowUnalignedMemoryAccess ) { return UnsafeUtil.getShort( p ); } return UnsafeUtil.getShortByteWiseLittleEndian( p ); }
@Override public 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 << Short.SIZE); return result == 0xFFFFFF ? -1 : result; }
private short getShortAt( long p ) { if ( UnsafeUtil.allowUnalignedMemoryAccess ) { short x = UnsafeUtil.getShort( p ); return UnsafeUtil.storeByteOrderIsNative ? x : Short.reverseBytes( x ); } return getShortBigEndian( p ); }
private short getShort( long p ) { if ( UnsafeUtil.allowUnalignedMemoryAccess ) { return UnsafeUtil.getShort( p ); } return UnsafeUtil.getShortByteWiseLittleEndian( p ); }
putShort( obj, aShortOffset, (byte) 1 ); assertThat( obj.aShort, is( (short) 1 ) ); assertThat( getShort( obj, aShortOffset ), is( (short) 1 ) ); obj.aShort = 0; assertThat( obj, is( new Obj() ) );
@Override public 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 << Short.SIZE); return result == 0xFFFFFF ? -1 : result; }
private short getShortAt( long p ) { if ( UnsafeUtil.allowUnalignedMemoryAccess ) { short x = UnsafeUtil.getShort( p ); return UnsafeUtil.storeByteOrderIsNative ? x : Short.reverseBytes( x ); } return getShortBigEndian( p ); }