The Trunk: Collections-eem.567.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Collections-eem.567.mcz

commits-2
Eliot Miranda uploaded a new version of Collections to project The Trunk:
http://source.squeak.org/trunk/Collections-eem.567.mcz

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

Name: Collections-eem.567
Author: eem
Time: 2 May 2014, 9:54:58.139 am
UUID: 78f9c7bb-cb9d-487c-91ba-edd8b89502c1
Ancestors: Collections-nice.566

Fix ([Read|Write]Stream on:...from:...to:...) contents.  The old code
would always copy from 1 to the end, not from whatever the
from: argument was.

=============== Diff against Collections-nice.566 ===============

Item was changed:
  PositionableStream subclass: #ReadStream
+ instanceVariableNames: 'initialPositionOrNil'
- instanceVariableNames: ''
  classVariableNames: ''
  poolDictionaries: ''
  category: 'Collections-Streams'!
 
  !ReadStream commentStamp: '<historical>' prior: 0!
  I represent an accessor for a sequence of objects that can only read objects from the sequence.!

Item was added:
+ ----- Method: ReadStream>>contents (in category 'accessing') -----
+ contents
+ "Answer with a copy of my collection from the start to readLimit."
+
+ ^collection copyFrom: (initialPositionOrNil ifNil: [1]) to: readLimit!

Item was changed:
  ----- Method: ReadStream>>on:from:to: (in category 'private') -----
  on: aCollection from: firstIndex to: lastIndex
 
  | len |
  collection := aCollection.
  readLimit :=  lastIndex > (len := collection size)
  ifTrue: [len]
  ifFalse: [lastIndex].
  position := firstIndex <= 1
  ifTrue: [0]
+ ifFalse: [firstIndex - 1].
+ initialPositionOrNil := position + 1!
- ifFalse: [firstIndex - 1]!

Item was changed:
  ----- Method: ReadWriteStream>>contents (in category 'accessing') -----
  contents
+ "Answer with a copy of my collection from the start to readLimit."
- "Answer with a copy of my collection from 1 to readLimit."
 
  readLimit := readLimit max: position.
+ ^collection copyFrom: (initialPositionOrNil ifNil: [1]) to: readLimit!
- ^collection copyFrom: 1 to: readLimit!

Item was changed:
  PositionableStream subclass: #WriteStream
+ instanceVariableNames: 'writeLimit initialPositionOrNil'
- instanceVariableNames: 'writeLimit'
  classVariableNames: ''
  poolDictionaries: ''
  category: 'Collections-Streams'!
 
  !WriteStream commentStamp: '<historical>' prior: 0!
  I represent an accessor for a sequence of objects that can only store objects in the sequence.!

Item was changed:
  ----- Method: WriteStream>>contents (in category 'accessing') -----
  contents
+ "Answer with a copy of my collection from the start to the current position."
-
  readLimit := readLimit max: position.
+ ^collection copyFrom: (initialPositionOrNil ifNil: [1]) to: position!
- ^collection copyFrom: 1 to: position!

Item was changed:
  ----- Method: WriteStream>>on:from:to: (in category 'private') -----
  on: aCollection from: firstIndex to: lastIndex
 
  | len |
  collection := aCollection.
  readLimit :=
  writeLimit := lastIndex > (len := collection size)
  ifTrue: [len]
  ifFalse: [lastIndex].
  position := firstIndex <= 1
  ifTrue: [0]
+ ifFalse: [firstIndex - 1].
+ initialPositionOrNil := position + 1!
- ifFalse: [firstIndex - 1]!