summary refs log tree commit diff stats
path: root/lib/core
diff options
context:
space:
mode:
authorAditya Siram <aditya.siram@gmail.com>2021-09-25 07:17:41 -0500
committerGitHub <noreply@github.com>2021-09-25 14:17:41 +0200
commite3b19cbe52e0578de315d259fbb066bfe991a60f (patch)
tree6c0a6f2ca8d5c6d91c7d7ceaa999504a4c31f020 /lib/core
parent8bdb98539570fdf3c41ee5509d5b90913ac1803e (diff)
downloadNim-e3b19cbe52e0578de315d259fbb066bfe991a60f.tar.gz
fixes #18878 (#18883)
Diffstat (limited to 'lib/core')
-rw-r--r--lib/core/typeinfo.nim3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/core/typeinfo.nim b/lib/core/typeinfo.nim
index d66dc1898..18d2091b9 100644
--- a/lib/core/typeinfo.nim
+++ b/lib/core/typeinfo.nim
@@ -216,7 +216,8 @@ proc extendSeq*(x: Any) =
   when defined(gcDestructors):
     var s = cast[ptr NimSeqV2Reimpl](x.value)
     let elem = x.rawType.base
-    s.p = cast[ptr NimSeqPayloadReimpl](prepareSeqAdd(s.len, s.p, 1, elem.size, elem.align))
+    if s.p == nil or s.p.cap < s.len+1:
+      s.p = cast[ptr NimSeqPayloadReimpl](prepareSeqAdd(s.len, s.p, 1, elem.size, elem.align))
     inc s.len
   else:
     var y = cast[ptr PGenSeq](x.value)[]