@Test public void testPassFloats() { Pointer<Byte> out = allocateBytes(8); for (int value : intValues) { passVarArgs(out, false, (float) value); assertEquals(value, out.getDouble(), 0); } }
@Override public void fromNative(Runtime runtime, Pointer memory, long offset) { switch (runtime.findType(typeAlias).getNativeType()) { case SCHAR: case UCHAR: value = memory.getByte(offset); break; case SSHORT: case USHORT: value = memory.getShort(offset); break; case SINT: case UINT: value = memory.getInt(offset); break; case SLONG: case ULONG: value = memory.getLong(offset); break; case SLONGLONG: case ULONGLONG: value = memory.getLongLong(offset); break; case ADDRESS: value = memory.getAddress(offset); break; case FLOAT: value = memory.getFloat(offset); break; case DOUBLE: value = memory.getDouble(offset); break; default: throw new UnsupportedOperationException("unsupported type: " + typeAlias); } }