#BUGFIX
authorClaus Gittinger <cg@exept.de>
Mon, 28 Mar 2016 03:12:06 +0200
changeset 19482 9067334aa4b7
parent 19481 b35554627017
child 19483 0ac4cc951e32
#BUGFIX class: ByteArray changed: #unsignedInt16At:put:
ByteArray.st
--- a/ByteArray.st	Sun Mar 27 22:17:22 2016 +0200
+++ b/ByteArray.st	Mon Mar 28 03:12:06 2016 +0200
@@ -166,6 +166,7 @@
 ! !
 
 
+
 !ByteArray class methodsFor:'queries'!
 
 elementByteSize
@@ -186,6 +187,7 @@
     "Modified: 23.4.1996 / 15:56:25 / cg"
 ! !
 
+
 !ByteArray methodsFor:'Compatibility-Squeak'!
 
 bitXor:aByteArray
@@ -817,11 +819,11 @@
             }
             nIndex = __byteArraySize(self);
             if ((indx+1) <= nIndex) {
-                val.u_ushort = v = __intVal(value);
+                v = __intVal(value);
                 if ((v & ~0xFFFF) == 0 /* i.e. (val >= 0) && (val <= 0xFFFF) */) {
                     byteP = (unsigned char *)(__ByteArrayInstPtr(self)->ba_element) + indx - 1;
 #if defined(__i386__) || defined(UNALIGNED_FETCH_OK)
-                    ((unsigned short *)byteP)[0] = val.u_ushort;
+                    ((unsigned short *)byteP)[0] = v;
 #else
                     /*
                      * mhmh to be measured:
@@ -830,8 +832,9 @@
                      */
                     if (((INT)byteP & 1) == 0) {
                         /* aligned */
-                        ((unsigned short *)byteP)[0] = val.u_ushort;
+                        ((unsigned short *)byteP)[0] = v;
                     } else {
+                        val.u_ushort = v;
                         byteP[0] = val.u_char[0];
                         byteP[1] = val.u_char[1];
                     }