Author: chromatic
Date: Tue Oct 2 22:51:00 2007
New Revision: 21768
Modified:
branches/pdd15oo/src/pmc/unmanagedstruct.pmc
Log:
[PMC] Fixed unsigned character and integer handling within UnManagedStruct; on
little-endian platforms, unsigned char and 8-bit ints turned into signed ones.
Now they're correct.
(This is why Leo complained that my blue rectangles looked white to him.)
Modified: branches/pdd15oo/src/pmc/unmanagedstruct.pmc
==============================================================================
--- branches/pdd15oo/src/pmc/unmanagedstruct.pmc (original)
+++ branches/pdd15oo/src/pmc/unmanagedstruct.pmc Tue Oct 2 22:51:00 2007
@@ -277,9 +277,13 @@
case enum_type_short:
return *(const short *)p;
case enum_type_uint8:
+ case enum_type_uchar:
+ {
+ unsigned char *uc = (unsigned char *)p;
+ return (INTVAL)*uc;
+ }
case enum_type_int8:
case enum_type_char:
- case enum_type_uchar:
return *p;
default:
real_exception(interp, NULL, 1,