chiark / gitweb /
bus: rework message struct to keep header with fields in same malloc() block
[elogind.git] / src / libsystemd-bus / bus-socket.c
index f43b7da05ca651fa158a07e850cf0531f4a840dc..4635da4b9ea436d98ee6735fb7cc5be5a12f80a4 100644 (file)
@@ -83,7 +83,7 @@ static int bus_message_setup_iovec(sd_bus_message *m) {
 
         assert(!m->iovec);
 
-        n = 1 + !!m->fields + m->n_body_parts;
+        n = 1 + m->n_body_parts;
         if (n < ELEMENTSOF(m->iovec_fixed))
                 m->iovec = m->iovec_fixed;
         else {
@@ -92,16 +92,10 @@ static int bus_message_setup_iovec(sd_bus_message *m) {
                         return -ENOMEM;
         }
 
-        r = append_iovec(m, m->header, sizeof(*m->header));
+        r = append_iovec(m, m->header, BUS_MESSAGE_BODY_BEGIN(m));
         if (r < 0)
                 return r;
 
-        if (m->fields) {
-                r = append_iovec(m, m->fields, ALIGN8(m->header->fields_size));
-                if (r < 0)
-                        return r;
-        }
-
         MESSAGE_FOREACH_PART(part, i, m)  {
                 r = append_iovec(m, part->data, part->size);
                 if (r < 0)