diff options
author | Brent Pedersen <bpederse@gmail.com> | 2019-09-11 15:40:34 -0600 |
---|---|---|
committer | Brent Pedersen <bpederse@gmail.com> | 2019-09-11 15:40:34 -0600 |
commit | 5b923cd149607bc91c94ac0b9191f02792de5395 (patch) | |
tree | 894b8f25f77dc4548053c5d659c085d60e06f686 /lib | |
parent | 944bab4c3c19ffd45eb5cb7c49f87a853c0cdcac (diff) | |
download | Nim-5b923cd149607bc91c94ac0b9191f02792de5395.tar.gz |
use while
Diffstat (limited to 'lib')
-rw-r--r-- | lib/system/sets.nim | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/system/sets.nim b/lib/system/sets.nim index 83d18e546..39f7d474f 100644 --- a/lib/system/sets.nim +++ b/lib/system/sets.nim @@ -30,11 +30,12 @@ proc countBits64(n: uint64): int {.compilerproc, inline.} = result = ((v * 0x0101010101010101'u64) shr 56'u64).int proc cardSet(s: NimSet, len: int): int {.compilerproc, inline.} = - var j = -1 + var i = 0 when defined(x86) or defined(amd64): - for i in countup(0, len - 8, 8): + while i < len - 8: inc(result, countBits64((cast[ptr uint64](s[i].unsafeAddr))[])) - j = i + 7 + inc(i, 8) - for i in (j + 1) ..< len: + while i < len: inc(result, countBits32(uint32(s[i]))) + inc(i, 1) |