diff -r dfb4670c8b1f -r 375237229a8e Array.st --- a/Array.st Wed Aug 05 11:20:54 1998 +0200 +++ b/Array.st Wed Aug 05 11:24:20 1998 +0200 @@ -460,6 +460,7 @@ if (nObj) { __InstPtr(nObj)->o_class = Array; + __STORE(nObj, Array); nIndex = __BYTES2OBJS__(sz - OHDR_SIZE - sizeof(OBJ)); /* @@ -1394,7 +1395,6 @@ memset4(dst, anObject, n4); } - __STORE(self, anObject); #else # ifdef FAST_MEMSET if ((INT)anObject == 0) { @@ -1417,9 +1417,9 @@ for (; index <= endIndex; index++) { *dst++ = anObject; } - __STORE(self, anObject); } #endif + __STORE(self, anObject); RETURN ( self ); } } @@ -1557,12 +1557,16 @@ spc = __qSpace(self); #if defined(UNROLL_LOOPS) - while (count >= 4) { + while (count >= 8) { t = src[0]; dst[0] = t; __STORE_SPC(self, t, spc); t = src[1]; dst[1] = t; __STORE_SPC(self, t, spc); t = src[2]; dst[2] = t; __STORE_SPC(self, t, spc); t = src[3]; dst[3] = t; __STORE_SPC(self, t, spc); - count -= 4; src += 4; dst += 4; + t = src[4]; dst[4] = t; __STORE_SPC(self, t, spc); + t = src[5]; dst[5] = t; __STORE_SPC(self, t, spc); + t = src[6]; dst[6] = t; __STORE_SPC(self, t, spc); + t = src[7]; dst[7] = t; __STORE_SPC(self, t, spc); + count -= 8; src += 8; dst += 8; } #endif while (count-- > 0) { @@ -2310,5 +2314,5 @@ !Array class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libbasic/Array.st,v 1.109 1998-06-04 01:18:28 cg Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/Array.st,v 1.110 1998-08-05 09:24:20 cg Exp $' ! !