ByteArray.st
changeset 422 63600ce8c7cc
parent 395 e368aef3be60
child 437 a005e97d261e
--- a/ByteArray.st	Sun Sep 03 17:06:58 1995 +0200
+++ b/ByteArray.st	Thu Sep 07 13:59:50 1995 +0200
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/ByteArray.st,v 1.32 1995-08-16 12:48:06 claus Exp $
+$Header: /cvs/stx/stx/libbasic/ByteArray.st,v 1.33 1995-09-07 11:57:52 claus Exp $
 '!
 
 !ByteArray class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/ByteArray.st,v 1.32 1995-08-16 12:48:06 claus Exp $
+$Header: /cvs/stx/stx/libbasic/ByteArray.st,v 1.33 1995-09-07 11:57:52 claus Exp $
 "
 !
 
@@ -1508,7 +1508,7 @@
 	}
 
 	value = _intVal(aNumber);
-	if ((value >= 0) && (value <= 255)
+	if (((value & ~0xFF) == 0) /* i.e. (value >= 0) && (value <= 255) */
 	 && (index1 <= index2) 
 	 && (index1 > 0)) {
 	    if (index2 <= len) {
@@ -1516,6 +1516,14 @@
 #ifdef FAST_MEMSET
 		memset(dstp, count, value);
 #else
+# ifdef UNROLL_LOOPS
+		while (count >= 8) {
+		    dstp[0] = dstp[1] = dstp[2] = dstp[3] =
+		    dstp[4] = dstp[5] = dstp[6] = dstp[7] = value;
+		    dstp += 8;
+		    count -= 8;
+		}
+# endif
 		while (count--) {
 		    *dstp++ = value;
 		}