2005-04-09 Havoc Pennington <hp@redhat.com>
- * dbus/dbus-message-util.c (_dbus_message_test): fix signedness
- warning
+ * dbus/dbus-string.c (copy): change a memcpy to memmove due to
+ possible overlap, fix from Daniel Reed
+ (fixup_alignment): fix signedness warnings
+ (_dbus_string_append_unichar): ditto
+
+2005-04-09 Havoc Pennington <hp@redhat.com>
+
+ * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
* glib/dbus-glib-tool.c (main): fix warning
static void
fixup_alignment (DBusRealString *real)
{
- char *aligned;
- char *real_block;
+ unsigned char *aligned;
+ unsigned char *real_block;
unsigned int old_align_offset;
/* we have to have extra space in real->allocated for the align offset and nul byte */
real = (DBusRealString*) str;
- real->str = (char*) value;
+ real->str = (unsigned char*) value;
real->len = len;
real->allocated = real->len + _DBUS_STRING_ALLOCATION_PADDING; /* a lie, just to avoid special-case assertions... */
real->max_length = real->len + 1;
#define MAX_WASTE 48
if (real->allocated - MAX_WASTE > real->len)
{
- char *new_str;
+ unsigned char *new_str;
int new_allocated;
new_allocated = real->len + _DBUS_STRING_ALLOCATION_PADDING;
int new_length)
{
int new_allocated;
- char *new_str;
+ unsigned char *new_str;
/* at least double our old allocation to avoid O(n), avoiding
* overflow
{
DBUS_STRING_PREAMBLE (str);
- return real->str;
+ return (char*) real->str;
}
#endif /* _dbus_string_get_data */
{
DBUS_CONST_STRING_PREAMBLE (str);
- return real->str;
+ return (const char*) real->str;
}
#endif /* _dbus_string_get_const_data */
_dbus_assert (start <= real->len);
_dbus_assert (len <= real->len - start);
- return real->str + start;
+ return (char*) real->str + start;
}
/* only do the function if we don't have the macro */
_dbus_assert (start <= real->len);
_dbus_assert (len <= real->len - start);
- return real->str + start;
+ return (const char*) real->str + start;
}
#endif /* _dbus_string_get_const_data_len */
undo_alignment (real);
- *data_return = real->str;
+ *data_return = (char*) real->str;
old_max_length = real->max_length;
if (!_dbus_string_init (str))
{
/* hrm, put it back then */
- real->str = *data_return;
+ real->str = (unsigned char*) *data_return;
*data_return = NULL;
fixup_alignment (real);
return FALSE;
return FALSE;
}
- vsprintf (real->str + (real->len - len),
+ vsprintf ((char*) (real->str + (real->len - len)),
format, args_copy);
va_end (args_copy);
int len;
int first;
int i;
- char *out;
+ unsigned char *out;
DBUS_STRING_PREAMBLE (str);
if (!open_gap (len, dest, insert_at))
return FALSE;
- memcpy (dest->str + insert_at,
- source->str + start,
- len);
+ memmove (dest->str + insert_at,
+ source->str + start,
+ len);
return TRUE;
}