diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2019-06-26 19:34:05 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2019-06-26 19:34:05 +0200 |
commit | e083a1533b40ed768b2085852b714ea8e5564f4f (patch) | |
tree | f05cdff70c0ef7be93ac225962ad760cae012a63 /lib | |
parent | f288e1b11ab3c796b213fe139f6dcb9c1897218f (diff) | |
download | Nim-e083a1533b40ed768b2085852b714ea8e5564f4f.tar.gz |
fixes #11098
Diffstat (limited to 'lib')
-rw-r--r-- | lib/system.nim | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/system.nim b/lib/system.nim index d6f117d39..2044f8056 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -997,8 +997,7 @@ proc newSeqOfCap*[T](cap: Natural): seq[T] {. ## assert len(x) == 1 discard -when not defined(JS) and not defined(gcDestructors): - # XXX enable this for --gc:destructors +when not defined(JS): proc newSeqUninitialized*[T: SomeNumber](len: Natural): seq[T] = ## Creates a new sequence of type ``seq[T]`` with length ``len``. ## @@ -1011,8 +1010,11 @@ when not defined(JS) and not defined(gcDestructors): ## assert len(x) == 3 ## x[0] = 10 result = newSeqOfCap[T](len) - var s = cast[PGenericSeq](result) - s.len = len + when defined(gcDestructors): + cast[ptr int](addr result)[] = len + else: + var s = cast[PGenericSeq](result) + s.len = len proc len*[TOpenArray: openArray|varargs](x: TOpenArray): int {. magic: "LengthOpenArray", noSideEffect.} |