diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2019-07-08 19:40:42 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2019-07-08 19:40:42 +0200 |
commit | 124a584eb2309a8338a9f5b0077d88723281d8ff (patch) | |
tree | 0ffb2868c4874753a7971d500e4bbaade4204202 /lib/core | |
parent | 655cb084610cde787f9b78360b96b3b97541112b (diff) | |
download | Nim-124a584eb2309a8338a9f5b0077d88723281d8ff.tar.gz |
fixes #11530
Diffstat (limited to 'lib/core')
-rw-r--r-- | lib/core/seqs.nim | 7 |
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]) = |