diff -r 6f162a05d381 -r aa053bd16549 Stream.st --- a/Stream.st Fri Mar 13 14:50:51 2015 +0100 +++ b/Stream.st Sat Mar 14 22:29:05 2015 +0100 @@ -1448,16 +1448,22 @@ nextPutAllUtf16:aString "write a string as UTF-16 bytes" - aString do:[:eachCharacter| - self nextPutUtf16:eachCharacter. + |sz "{Class: SmallInteger}"| + + sz := aString size. + 1 to:sz do:[:idx| + self nextPutUtf16:(aString at:idx). ]. ! nextPutAllUtf8:aString "normal streams can not handle multi-byte characters, so convert them to utf8" - aString do:[:eachCharacter| - self nextPutUtf8:eachCharacter. + |sz "{Class: SmallInteger}"| + + sz := aString size. + 1 to:sz do:[:idx| + self nextPutUtf8:(aString at:idx). ]. ! @@ -1773,7 +1779,7 @@ UTF-16 can encode only characters with code points between 0 to 16r10FFFF. The collection must be able to store 2-byte values (TwoByteString, OrderedCollection)" - |codePoint| + |codePoint "{Class: SmallInteger}"| codePoint := aCharacter codePoint. (codePoint <= 16rD7FF @@ -1805,7 +1811,9 @@ Up to 31 bits can be encoded in up to 6 bytes. However, currently, characters are limited to 31 bits." - |codePoint b1 b2 b3 b4 b5 v| + |codePoint "{Class: SmallInteger}" + v "{Class: SmallInteger}" + b1 b2 b3 b4 b5| codePoint := aCharacter codePoint. @@ -1850,8 +1858,7 @@ ^ self. ]. - - self error:'codePoint > 31bit in #nextPutUtf8:'. + EncodingError raiseWith:aCharacter errorString:'codePoint > 31bit in #nextPutUtf8:'. " (String streamContents:[:s| @@ -3750,11 +3757,11 @@ !Stream class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libbasic/Stream.st,v 1.238 2015-03-13 11:27:09 stefan Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/Stream.st,v 1.239 2015-03-14 21:29:05 stefan Exp $' ! version_CVS - ^ '$Header: /cvs/stx/stx/libbasic/Stream.st,v 1.238 2015-03-13 11:27:09 stefan Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/Stream.st,v 1.239 2015-03-14 21:29:05 stefan Exp $' ! !