From 45bbf1ef5ba01eb5389f79abb204ca9bddd2b7c7 Mon Sep 17 00:00:00 2001 From: Miran Date: Thu, 20 Jun 2019 21:03:11 +0200 Subject: [bugfix] fix OrderedTable default initialization (#11549) --- lib/pure/collections/tableimpl.nim | 3 +++ lib/pure/collections/tables.nim | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/pure/collections/tableimpl.nim b/lib/pure/collections/tableimpl.nim index ad9445c91..6fce5c989 100644 --- a/lib/pure/collections/tableimpl.nim +++ b/lib/pure/collections/tableimpl.nim @@ -118,6 +118,9 @@ template initImpl(result: typed, size: int) = assert isPowerOfTwo(size) result.counter = 0 newSeq(result.data, size) + when compiles(result.first): + result.first = -1 + result.last = -1 template insertImpl() = # for CountTable if t.dataLen == 0: initImpl(t, defaultInitialSize) diff --git a/lib/pure/collections/tables.nim b/lib/pure/collections/tables.nim index bf1f3c692..02db10654 100644 --- a/lib/pure/collections/tables.nim +++ b/lib/pure/collections/tables.nim @@ -1282,8 +1282,6 @@ proc initOrderedTable*[A, B](initialsize = defaultInitialSize): OrderedTable[A, a = initOrderedTable[int, string]() b = initOrderedTable[char, seq[int]]() initImpl(result, initialSize) - result.first = -1 - result.last = -1 proc toOrderedTable*[A, B](pairs: openArray[(A, B)]): OrderedTable[A, B] = ## Creates a new ordered hash table that contains the given ``pairs``. -- cgit 1.4.1-2-gfad0