summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorfenekku <fenekku@fenekku.com>2017-02-17 02:26:49 -0500
committerAndreas Rumpf <rumpf_a@web.de>2017-02-17 08:26:49 +0100
commite9767d8809a0ff4df83ffff1836937db3c2885bf (patch)
treeb38c9aef7409dd265577325dcd8c322120ff5317
parent9534a5d6328e6e4df94d4a8f038a388dfdf56c49 (diff)
downloadNim-e9767d8809a0ff4df83ffff1836937db3c2885bf.tar.gz
Fix reverse on empty openArray (#5407)
Reversing an empty `openArray` would raise a RangeError. For instance for `a: seq[int] = @[]`, we have `a.high` return `-1` but `-1` is not a `Natural`. Leaving the array as-is is the expected behaviour.
-rw-r--r--lib/pure/algorithm.nim2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/pure/algorithm.nim b/lib/pure/algorithm.nim
index 739cdc16b..bc39f153b 100644
--- a/lib/pure/algorithm.nim
+++ b/lib/pure/algorithm.nim
@@ -46,7 +46,7 @@ proc reverse*[T](a: var openArray[T], first, last: Natural) =
 
 proc reverse*[T](a: var openArray[T]) =
   ## reverses the array `a`.
-  reverse(a, 0, a.high)
+  reverse(a, 0, max(0, a.high))
 
 proc reversed*[T](a: openArray[T], first: Natural, last: int): seq[T] =
   ## returns the reverse of the array `a[first..last]`.