[squeak-dev] The Trunk: Collections-nice.503.mcz

commits at source.squeak.org commits at source.squeak.org
Sun Mar 3 13:37:33 UTC 2013


Nicolas Cellier uploaded a new version of Collections to project The Trunk:
http://source.squeak.org/trunk/Collections-nice.503.mcz

==================== Summary ====================

Name: Collections-nice.503
Author: nice
Time: 3 March 2013, 2:36:21.966 pm
UUID: 180c7283-9170-4fd8-9893-16122ba48f56
Ancestors: Collections-bf.502

Get rid from two un-necessary usages of ReadStream on:from:to:

=============== Diff against Collections-bf.502 ===============

Item was changed:
  ----- Method: PositionableStream>>decodeString:andRuns: (in category 'fileIn/Out') -----
  decodeString: string andRuns: runsRaw
  
  	| strm runLength runValues newString index |
+ 	strm := runsRaw readStream.
- 	strm := ReadStream on: runsRaw from: 1 to: runsRaw size.
  	(strm peekFor: $( ) ifFalse: [^ nil].
  	runLength := OrderedCollection new.
  	[strm skipSeparators.
  	 strm peekFor: $)] whileFalse: 
  		[runLength add: (Number readFrom: strm)].
  
  	runValues := OrderedCollection new.
  	[strm atEnd not] whileTrue: 
  		[runValues add: (Number readFrom: strm).
  		strm next.].
  
  	newString := WideString new: string size.
  	index := 1.
  	runLength with: runValues do: [:length :leadingChar |
  		index to: index + length - 1 do: [:pos |
  			newString at: pos put: (Character leadingChar: leadingChar code: (string at: pos) charCode).
  		].
  		index := index + length.
  	].
  
  	^ newString.
  !

Item was changed:
  ----- Method: PositionableStream>>nextChunkText (in category 'fileIn/Out') -----
  nextChunkText
  	"Deliver the next chunk as a Text.  Decode the following ]style[ chunk if present.  Position at start of next real chunk."
+ 	| string runs peek pos |
- 	| string runsRaw strm runs peek pos |
  	"Read the plain text"
  	string := self nextChunk.
  	
  	"Test for ]style[ tag"
  	pos := self position.
  	peek := self skipSeparatorsAndPeekNext.
  	peek = $] ifFalse: [self position: pos. ^ string asText].  "no tag"
  	(self upTo: $[) = ']style' ifFalse: [self position: pos. ^ string asText].  "different tag"
  
  	"Read and decode the style chunk"
+ 	runs := RunArray scanFrom: self basicNextChunk readStream.
- 	runsRaw := self basicNextChunk.	"style encoding"
- 	strm := ReadStream on: runsRaw from: 1 to: runsRaw size.
- 	runs := RunArray scanFrom: strm.
  
  	^ Text basicNew setString: string setRunsChecking: runs.
  !



More information about the Squeak-dev mailing list