<div dir="ltr"><div><div><div><div><div>Hello,<br><br></div>I am writing an implementation of D-Bus Protocol in Elixir (<a href="https://github.com/mspanc/dbux">https://github.com/mspanc/dbux</a>).<br><br></div>I am observing how other implementation marshall messages and I can't understand the pattern according arrays.<br><br></div>In the docs it's stated that after array length content should be aligned to the array element's padding.<br><br></div>But when I observe method call to Hello, it looks like the following:<br><br>6c:01:00:01: header start<br></div>00:00:00:00: body length<br><div>01:00:00:00: serial<br><b>6d:00:00:00:</b> header fields start: array length<br>01: header type: 1<br>01:6f:00: variant signature (object_path)<br>15:00:00:00: string len<br>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<br><br></div><div>and so on<br><br></div><div>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.<br><br></div><div>What is the rationale behind this?<br><br></div><div>Thanks in advance,<br><br></div><div>Marcin<br></div></div>