'From Squeak3.6beta of ''4 July 2003'' [latest update: #5395] on 12 August 2003 at 5:00:35 pm'! "Change Set: ZippierStreams Date: 12 August 2003 Author: Andreas Raab This change set speeds up various stream writing operations. It was created when I noticed how much time ZipArchive spends during extracting its contents. For the Balloon3D.sar (which I used for profiling) decompression speed improved from: 2,881 msecs to: 172 msecs Which is roughly 17 times faster. The benchmark used was: file := FileStream readOnlyFileNamed: 'Balloon3D.1.0.4.sar'. MessageTally spyOn:[ archive := ZipArchive new readFrom: file. archive members do:[:mbr| mbr contents]. ]. file close. " ! !PositionableStream methodsFor: 'accessing' stamp: 'ar 8/12/2003 16:56'! next: anInteger putAll: aCollection startingAt: startIndex "Store the next anInteger elements from the given collection." (startIndex = 1 and:[anInteger = aCollection size]) ifTrue:[^self nextPutAll: aCollection]. ^self nextPutAll: (aCollection copyFrom: startIndex to: startIndex+anInteger-1)! ! !RWBinaryOrTextStream methodsFor: 'writing' stamp: 'ar 8/12/2003 16:54'! next: anInteger putAll: aCollection startingAt: startIndex ^super next: anInteger putAll: aCollection asString startingAt: startIndex! ! !RWBinaryOrTextStream methodsFor: 'writing' stamp: 'ar 8/12/2003 16:54'! nextPutAll: aCollection ^super nextPutAll: aCollection asString! !