[launchd-changes] [23153] trunk/launchd/src/liblaunch.c
source_changes at macosforge.org
source_changes at macosforge.org
Mon Mar 19 10:49:44 PDT 2007
Revision: 23153
http://trac.macosforge.org/projects/launchd/changeset/23153
Author: zarzycki at apple.com
Date: 2007-03-19 10:49:43 -0700 (Mon, 19 Mar 2007)
Log Message:
-----------
Unaligned access can slow down the machine.
Modified Paths:
--------------
trunk/launchd/src/liblaunch.c
Modified: trunk/launchd/src/liblaunch.c
===================================================================
--- trunk/launchd/src/liblaunch.c 2007-03-16 14:24:14 UTC (rev 23152)
+++ trunk/launchd/src/liblaunch.c 2007-03-19 17:49:43 UTC (rev 23153)
@@ -574,6 +574,8 @@
free(lh);
}
+#define ROUND_TO_64BIT_WORD_SIZE(x) ((x + 7) & ~7)
+
void
launch_data_pack(launch_data_t d, void **where, size_t *len, int **fd_where, size_t *fdcnt)
{
@@ -613,13 +615,13 @@
o_in_w->string_len = host2big(d->string_len);
*where = realloc(*where, *len + strlen(d->string) + 1);
memcpy(*where + *len, d->string, strlen(d->string) + 1);
- *len += strlen(d->string) + 1;
+ *len += ROUND_TO_64BIT_WORD_SIZE(strlen(d->string) + 1);
break;
case LAUNCH_DATA_OPAQUE:
o_in_w->opaque_size = host2big(d->opaque_size);
*where = realloc(*where, *len + d->opaque_size);
memcpy(*where + *len, d->opaque, d->opaque_size);
- *len += d->opaque_size;
+ *len += ROUND_TO_64BIT_WORD_SIZE(d->opaque_size);
break;
case LAUNCH_DATA_DICTIONARY:
case LAUNCH_DATA_ARRAY:
@@ -671,7 +673,7 @@
}
r->string = conn->recvbuf + *data_offset;
r->string_len = tmpcnt;
- *data_offset += tmpcnt + 1;
+ *data_offset += ROUND_TO_64BIT_WORD_SIZE(tmpcnt + 1);
break;
case LAUNCH_DATA_OPAQUE:
tmpcnt = big2host(r->opaque_size);
@@ -681,7 +683,7 @@
}
r->opaque = conn->recvbuf + *data_offset;
r->opaque_size = tmpcnt;
- *data_offset += tmpcnt;
+ *data_offset += ROUND_TO_64BIT_WORD_SIZE(tmpcnt);
break;
case LAUNCH_DATA_FD:
if (r->fd != -1) {
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070319/905a31d3/attachment.html
More information about the launchd-changes
mailing list