2003-01-07 Anders Carlsson <andersca@codefactory.se>

* dbus/dbus-marshal.c: (_dbus_marshal_double),
	(_dbus_marshal_string), (_dbus_marshal_byte_array):
	* dbus/dbus-message.c: (dbus_message_append_int32),
	(dbus_message_append_uint32), (dbus_message_append_double),
	(dbus_message_append_string), (dbus_message_append_byte_array):
	Handle OOM restoration.
This commit is contained in:
Anders Carlsson 2003-01-06 22:19:09 +00:00
parent 5175ad00e1
commit 3d2dee2a7f
3 changed files with 48 additions and 13 deletions

View file

@ -1,3 +1,12 @@
2003-01-07 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-marshal.c: (_dbus_marshal_double),
(_dbus_marshal_string), (_dbus_marshal_byte_array):
* dbus/dbus-message.c: (dbus_message_append_int32),
(dbus_message_append_uint32), (dbus_message_append_double),
(dbus_message_append_string), (dbus_message_append_byte_array):
Handle OOM restoration.
2003-01-07 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-marshal.c: (_dbus_marshal_string),

View file

@ -137,11 +137,6 @@ _dbus_marshal_double (DBusString *str,
int byte_order,
double value)
{
if (!_dbus_string_set_length (str,
DBUS_ALIGN_VALUE (_dbus_string_get_length (str),
sizeof (double))))
return FALSE;
if (byte_order != DBUS_COMPILER_BYTE_ORDER)
swap_bytes ((unsigned char *)&value, sizeof (double));
@ -209,12 +204,19 @@ _dbus_marshal_string (DBusString *str,
int byte_order,
const char *value)
{
int len;
int len, old_string_len;
old_string_len = _dbus_string_get_length (str);
len = strlen (value);
if (!_dbus_marshal_uint32 (str, byte_order, len))
return FALSE;
{
/* Restore the previous length */
_dbus_string_set_length (str, old_string_len);
return FALSE;
}
return _dbus_string_append_len (str, value, len + 1);
}
@ -234,8 +236,17 @@ _dbus_marshal_byte_array (DBusString *str,
const unsigned char *value,
int len)
{
int old_string_len;
old_string_len = _dbus_string_get_length (str);
if (!_dbus_marshal_uint32 (str, byte_order, len))
return FALSE;
{
/* Restore the previous length */
_dbus_string_set_length (str, old_string_len);
return FALSE;
}
return _dbus_string_append_len (str, value, len);
}

View file

@ -230,7 +230,10 @@ dbus_message_append_int32 (DBusMessage *message,
_dbus_assert (!message->locked);
if (!_dbus_string_append_byte (&message->body, DBUS_TYPE_INT32))
return FALSE;
{
_dbus_string_shorten (&message->body, 1);
return FALSE;
}
return _dbus_marshal_int32 (&message->body,
DBUS_COMPILER_BYTE_ORDER, value);
@ -251,7 +254,10 @@ dbus_message_append_uint32 (DBusMessage *message,
_dbus_assert (!message->locked);
if (!_dbus_string_append_byte (&message->body, DBUS_TYPE_UINT32))
return FALSE;
{
_dbus_string_shorten (&message->body, 1);
return FALSE;
}
return _dbus_marshal_uint32 (&message->body,
DBUS_COMPILER_BYTE_ORDER, value);
@ -272,7 +278,10 @@ dbus_message_append_double (DBusMessage *message,
_dbus_assert (!message->locked);
if (!_dbus_string_append_byte (&message->body, DBUS_TYPE_INT32))
return FALSE;
{
_dbus_string_shorten (&message->body, 1);
return FALSE;
}
return _dbus_marshal_double (&message->body,
DBUS_COMPILER_BYTE_ORDER, value);
@ -294,7 +303,10 @@ dbus_message_append_string (DBusMessage *message,
_dbus_assert (value != NULL);
if (!_dbus_string_append_byte (&message->body, DBUS_TYPE_UTF8_STRING))
return FALSE;
{
_dbus_string_shorten (&message->body, 1);
return FALSE;
}
return _dbus_marshal_string (&message->body,
DBUS_COMPILER_BYTE_ORDER, value);
@ -318,7 +330,10 @@ dbus_message_append_byte_array (DBusMessage *message,
_dbus_assert (value != NULL);
if (!_dbus_string_append_byte (&message->body, DBUS_TYPE_BYTE_ARRAY))
return FALSE;
{
_dbus_string_shorten (&message->body, 1);
return FALSE;
}
return _dbus_marshal_byte_array (&message->body,
DBUS_COMPILER_BYTE_ORDER, value, len);