Il 09/10/2012 16:43, Holger Hans Peter Freyther ha scritto:
>> > - [(s := streams first) atEnd] whileTrue:
>> > - [streams size = 1 ifTrue: [^nil].
>> > - lastStart := startPos.
>> > + "This is somewhat performance-sensitive, so avoid testing for an
>> > + empty collection."
>> > + [(s := streams at: 1) atEnd] whileTrue:
>> > + [lastStart := startPos.
>> > startPos := startPos + curPos.
>> > curPos := 0.
>> > + streams size = 1 ifTrue: [last := streams first. ^nil].
> I don't see why it is failing but maybe the test helps.
Yes, this fixes it:
diff --git a/kernel/StreamOps.st b/kernel/StreamOps.st
index 63bea8a..54f82af 100644
--- a/kernel/StreamOps.st
+++ b/kernel/StreamOps.st
@@ -81,9 +81,10 @@ Stream subclass: ConcatenatedStream [
"This is somewhat performance-sensitive, so avoid testing for an
empty collection."
[(s := streams at: 1) atEnd] whileTrue:
- [lastStart := startPos.
- startPos := startPos + curPos.
- curPos := 0.
+ [curPos > 0 ifTrue: [
+ lastStart := startPos.
+ startPos := startPos + curPos.
+ curPos := 0].
streams size = 1 ifTrue: [last := streams first. ^nil].
last := streams removeFirst].
^s
Paolo
_______________________________________________
help-smalltalk mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-smalltalk