--- 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];
}