From 12f929e5822beeab2e1d60af9b4ef53d8339e11e Mon Sep 17 00:00:00 2001 From: data-man Date: Thu, 7 Jun 2018 19:29:40 +0300 Subject: [PATCH] Fixed bug in CritBitTree.inc. Fixes #7990. --- lib/pure/collections/critbits.nim | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/pure/collections/critbits.nim b/lib/pure/collections/critbits.nim index 71615002e7..eaba257ae8 100644 --- a/lib/pure/collections/critbits.nim +++ b/lib/pure/collections/critbits.nim @@ -167,7 +167,7 @@ proc inc*(c: var CritBitTree[int]; key: string, val: int = 1) = ## increments `c[key]` by `val`. let oldCount = c.count var n = rawInsert(c, key) - if c.count == oldCount or oldCount == 0: + if c.count >= oldCount or oldCount == 0: # not a new key: inc n.val, val @@ -366,3 +366,12 @@ when isMainModule: c.inc("a", -5) assert c["a"] == 0 + + c.inc("b", 2) + assert c["b"] == 2 + + c.inc("c", 3) + assert c["c"] == 3 + + c.inc("a", 1) + assert c["a"] == 1