[Pharo-project] Small improvement for WriteStream >> nextPutAll:
Mariano Martinez Peck
marianopeck at gmail.com
Sun Jan 8 14:46:32 CET 2012
Hi guys. Some time ago Henry spot to us a small improvement for WriteStream
>> nextPutAll: that we are using in Fuel, but I think it can be general.
Henry comment was exactly:
*Also: For variableBytes classes, if you rewrite:
| newEnd |
collection class instSpec == aCollection class instSpec ifFalse:
[^ super nextPutAll: aCollection ].
newEnd := position + aCollection size.
newEnd > writeLimit ifTrue:
[self growTo: newEnd + 10].
collection replaceFrom: position+1 to: newEnd with:
position := newEnd.
You can now pass all variableByte classes (Like ByteString) directly to a
stream with a ByteArray collection, and the replaceFrom:to:with:*
*startingAt: primitive will work correctly, just like the file primitive
This means you don't need special Serializers for these either, using
f.ex. clunky nextStringPutAll: methods with manual asByteArray conversions.*
So...if you agree, I can commit the patch.
Let me know.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Pharo-project