summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2015-07-23 17:18:36 +0200
committerAraq <rumpf_a@web.de>2015-07-24 01:04:45 +0200
commit49324157421d138c3cba39b629bdb88a5b88dc54 (patch)
tree4902d16bcb4f898a779557decb41b36791dcfb90 /lib
parent18823a315e5a32d125a631f8ac8710be6102a95e (diff)
downloadNim-49324157421d138c3cba39b629bdb88a5b88dc54.tar.gz
fixes #1832
Diffstat (limited to 'lib')
-rw-r--r--lib/system/sysstr.nim8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/system/sysstr.nim b/lib/system/sysstr.nim
index 33629016f..326c601bd 100644
--- a/lib/system/sysstr.nim
+++ b/lib/system/sysstr.nim
@@ -210,6 +210,14 @@ proc incrSeq(seq: PGenericSeq, elemSize: int): PGenericSeq {.compilerProc.} =
                                GenericSeqSize))
   inc(result.len)
 
+proc incrSeqV2(seq: PGenericSeq, elemSize: int): PGenericSeq {.compilerProc.} =
+  # incrSeq version 2
+  result = seq
+  if result.len >= result.space:
+    result.reserved = resize(result.space)
+    result = cast[PGenericSeq](growObj(result, elemSize * result.reserved +
+                               GenericSeqSize))
+
 proc setLengthSeq(seq: PGenericSeq, elemSize, newLen: int): PGenericSeq {.
     compilerRtl.} =
   result = seq