Merge branch 'spec-correction' into 'master'

Add a few clarifications to the spec

See merge request dbus/dbus!203
This commit is contained in:
Zeeshan Ali 2021-03-16 12:07:08 +00:00
commit ef55a3db0d

View file

@ -1207,7 +1207,9 @@
array elements marshalled in sequence. <varname>n</varname> does not
include the padding after the length, or any padding after the
last element. i.e. <varname>n</varname> should be divisible by the
number of elements in the array.
number of elements in the array. Note that the alignment padding for the
first element is required even if there is no first element (an
empty array, where <varname>n</varname> is zero).
</para>
<para>
@ -1245,6 +1247,24 @@
(See <link linkend="message-protocol-marshaling-signature">Valid
Signatures</link>.)
</para>
<para>
It should be noted that while a variant itself does not require any
alignment padding, the contained value does need to be padded
according to the alignment rules of its type.
</para>
<para>
For instance, if the current position in the message is at a multiple of
8 bytes and the byte-order is big-endian, a variant containing a 64-bit
integer 5 would be marshalled as:
<screen>
0x01 0x74 0x00 <lineannotation>signature bytes (length = 1, signature = 't' and trailing nul)</lineannotation>
0x00 0x00 0x00 0x00 0x00 <lineannotation>padding to 8-byte boundary</lineannotation>
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x05 <lineannotation>8 bytes of contained value</lineannotation>
</screen>
</para>
</sect2>
<sect2>