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: WriteStream nextPutAll: aCollection | 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: aCollectionstartingAt: 1. position := newEnd. ^ aCollection 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 does 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. -- Mariano http://marianopeck.wordpress.com