diff options
author | Stefan Zeiger <szeiger@novocode.com> | 2016-01-29 17:28:16 +0100 |
---|---|---|
committer | Stefan Zeiger <szeiger@novocode.com> | 2016-02-01 14:41:17 +0100 |
commit | ecee7b75328ae1f856b5fa832ebad7fc9e42f64a (patch) | |
tree | d49c0a1e1d2f1b546d374e8888b431f0e069bf86 /build.number | |
parent | ea154faf467ae27c221ba0dcd7235e1e55673c51 (diff) | |
download | scala-ecee7b75328ae1f856b5fa832ebad7fc9e42f64a.tar.gz scala-ecee7b75328ae1f856b5fa832ebad7fc9e42f64a.tar.bz2 scala-ecee7b75328ae1f856b5fa832ebad7fc9e42f64a.zip |
SI-9623 Avoid unnecessary hasNext calls in JoinIterator & ConcatIterator
These iterator implementations are used to concatenate two (JoinIterator)
or more (ConcatIterator) other iterators with `++`. They used to perform
many unnecessary calls to the child iterators’ `hasNext` methods.
This improved state machine-based implementation reduces that number to
the bare minimum, i.e. iterating over concatenated iterators with
`foreach` calls the children's `hasNext` methods a total of (number of
children) + (number of elements) times, the same as when iterating over
all children separately.
Diffstat (limited to 'build.number')
0 files changed, 0 insertions, 0 deletions