diff options
author | Havoc Pennington <hp@redhat.com> | 2005-01-03 07:16:12 +0000 |
---|---|---|
committer | Havoc Pennington <hp@redhat.com> | 2005-01-03 07:16:12 +0000 |
commit | 07d2fd5aa2891d94bcb97db89178a4d536599d14 (patch) | |
tree | db8904967f507a05ca582a04ac7beb4f114b3d60 /dbus/dbus-string.c | |
parent | c7e05f9ca4ff7ab0c8499b2059004dd38d2c8784 (diff) |
2005-01-03 Havoc Pennington <hp@redhat.com>
* dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
floating point
* dbus/dbus-string.c (_dbus_string_insert_alignment): new function
Diffstat (limited to 'dbus/dbus-string.c')
-rw-r--r-- | dbus/dbus-string.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/dbus/dbus-string.c b/dbus/dbus-string.c index 108ddad5..7040e155 100644 --- a/dbus/dbus-string.c +++ b/dbus/dbus-string.c @@ -59,6 +59,12 @@ * because it could keep us from detecting bogus huge lengths. i.e. if * we passed in some bogus huge length it would be taken to mean * "current length of string" instead of "broken crack" + * + * @todo #DBusString needs a lot of cleaning up; some of the + * API is no longer used, and the API is pretty inconsistent. + * In particular all the "append" APIs, especially those involving + * alignment but probably lots of them, are no longer used by the + * marshaling code which always does "inserts" now. */ /** @@ -1155,6 +1161,32 @@ _dbus_string_insert_8_aligned (DBusString *str, return TRUE; } + +/** + * Inserts padding at *insert_at such to align it to the given + * boundary. Initializes the padding to nul bytes. Sets *insert_at + * to the aligned position. + * + * @param str the DBusString + * @param insert_at location to be aligned + * @param alignment alignment boundary (1, 4, or 8) + * @returns #FALSE if not enough memory. + */ +dbus_bool_t +_dbus_string_insert_alignment (DBusString *str, + int *insert_at, + int alignment) +{ + DBUS_STRING_PREAMBLE (str); + + if (!align_insert_point_then_open_gap (str, insert_at, 8, 0)) + return FALSE; + + _dbus_assert (_DBUS_ALIGN_VALUE (*insert_at, 8) == (unsigned) *insert_at); + + return TRUE; +} + /** * Appends a printf-style formatted string * to the #DBusString. |