-
Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
* icall.c, reflection.h: added icall to get info about an event.
* object.c (mono_value_box): don't use memcpy for boxing on BIG
endian
+ (mono_value_box): don't use memcpy for small sizes on
+ architectures with unaligned access
2002-05-20 Martin Baulig <martin@gnome.org>
size = size - sizeof (MonoObject);
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+#if NO_UNALIGNED_ACCESS
memcpy ((char *)res + sizeof (MonoObject), value, size);
#else
switch (size) {
case 1:
- *(guint8 *)((guint8 *) res + sizeof (MonoObject)) = *(guint32 *)value;
+ *((guint8 *) res + sizeof (MonoObject)) = *(guint8 *) value;
break;
case 2:
- *(guint16 *)((guint8 *) res + sizeof (MonoObject)) = *(guint32 *)value;
+ *(guint16 *)((guint8 *) res + sizeof (MonoObject)) = *(guint16 *) value;
break;
case 4:
- *(guint32 *)((guint8 *) res + sizeof (MonoObject)) = *(guint32 *)value;
+ *(guint32 *)((guint8 *) res + sizeof (MonoObject)) = *(guint32 *) value;
break;
case 8:
- *(guint64 *)((guint8 *) res + sizeof (MonoObject)) = *(guint64 *)value;
+ *(guint64 *)((guint8 *) res + sizeof (MonoObject)) = *(guint64 *) value;
break;
default:
memcpy ((char *)res + sizeof (MonoObject), value, size);