155. Introducing PaddingLayout
Data types are typically characterized by several properties: size, alignment, stride, padding, and order of bytes.
The padding layout (java.lang.foreign.PaddingLayout
) allows us to specify the padding. In other words, PaddingLayout
allows us to add at certain offsets some extra space that is usually ignored by the applications but is needed to align the member layouts of a memory segment.
For instance, let’s consider the following two memory segments (the left-hand side is a memory segment without padding, while the right-hand side is a memory segment with two paddings of 4 bytes each).
Figure 7.16: Memory segments with (right-hand side)/without (left-hand side) padding
In code lines, the padding-free memory segment can be shaped as follows:
StructLayout npStruct = MemoryLayout.structLayout(
ValueLayout.JAVA_INT.withName("x"),
ValueLayout.JAVA_INT.withName("y")
);
Since the size of JAVA_INT...