Array alignment while marshalling data

"[email protected]" <[email protected]>
Newsgroups gmane.comp.freedesktop.dbus
Message-ID <CA+DLCvCykLzpJ5ROfmibQVfx=4+fvCRZTGO_y_wYrRat_UV+YA@mail.gmail.com>
Hello,

I am writing an implementation of D-Bus Protocol in Elixir (
https://github.com/mspanc/dbux).

I am observing how other implementation marshall messages and I can't
understand the pattern according arrays.

In the docs it's stated that after array length content should be aligned
to the array element's padding.

But when I observe method call to Hello, it looks like the following:

6c:01:00:01: header start
00:00:00:00: body length
01:00:00:00: serial
*6d:00:00:00:* header fields start: array length
01: header type: 1
01:6f:00: variant signature (object_path)
15:00:00:00: string len
2f:6f:72:67:2f:66:72:65: 65:64:65:73 :6b:74:6f:70: 2f:44:42:75:
73:00:00:00: 03:01:73:00: string

and so on

the array length is not aligned to 8 bytes, but to 4 bytes. But type of
this array is struct, which according to the specification should always
align to 8 bytes.

What is the rationale behind this?

Thanks in advance,

Marcin

_______________________________________________
dbus mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dbus
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.