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,

Reply via email to