summary refs log tree commit diff stats
path: root/lib/core
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2019-07-08 19:40:42 +0200
committerAndreas Rumpf <rumpf_a@web.de>2019-07-08 19:40:42 +0200
commit124a584eb2309a8338a9f5b0077d88723281d8ff (patch)
tree0ffb2868c4874753a7971d500e4bbaade4204202 /lib/core
parent655cb084610cde787f9b78360b96b3b97541112b (diff)
downloadNim-124a584eb2309a8338a9f5b0077d88723281d8ff.tar.gz
fixes #11530
Diffstat (limited to 'lib/core')
-rw-r--r--lib/core/seqs.nim7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/core/seqs.nim b/lib/core/seqs.nim
index 9c88040ba..f8cba889c 100644
--- a/lib/core/seqs.nim
+++ b/lib/core/seqs.nim
@@ -172,7 +172,12 @@ proc setLen[T](s: var seq[T], newlen: Natural) =
     if newlen < s.len:
       shrink(s, newLen)
     else:
-      grow(s, newLen, default(T))
+      let oldLen = s.len
+      if newLen <= oldLen: return
+      var xu = cast[ptr NimSeqV2[T]](addr s)
+      if xu.p == nil or xu.p.cap < newLen:
+        xu.p = cast[typeof(xu.p)](prepareSeqAdd(oldLen, xu.p, newLen - oldLen, sizeof(T)))
+      xu.len = newLen
 
 when false:
   proc resize[T](s: var NimSeqV2[T]) =