summary refs log tree commit diff stats
path: root/compiler/ccgexprs.nim
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2019-02-21 12:19:06 +0100
committerAndreas Rumpf <rumpf_a@web.de>2019-02-21 12:19:06 +0100
commit417d27c54406ac29ab00ac0b459aa7546af4b83a (patch)
treee346a018a1e3ee436efa0e645ee9c51e0bc105ee /compiler/ccgexprs.nim
parentf2f0b5d695fbde2f9a8537b30e8422b22416ddbe (diff)
downloadNim-417d27c54406ac29ab00ac0b459aa7546af4b83a.tar.gz
gc:destructors: progress
Diffstat (limited to 'compiler/ccgexprs.nim')
-rw-r--r--compiler/ccgexprs.nim11
1 files changed, 3 insertions, 8 deletions
diff --git a/compiler/ccgexprs.nim b/compiler/ccgexprs.nim
index 5cf6df847..d459f6cbf 100644
--- a/compiler/ccgexprs.nim
+++ b/compiler/ccgexprs.nim
@@ -2614,20 +2614,15 @@ proc genConstSeqV2(p: BProc, n: PNode, t: PType): Rope =
     data.add genConstExpr(p, n.sons[i])
   data.add("}")
 
-  result = getTempName(p.module)
   let payload = getTempName(p.module)
   let base = t.skipTypes(abstractInst).sons[0]
 
   appcg(p.module, cfsData,
     "static const struct {$n" &
     "  NI cap; void* allocator; $1 data[$2];$n" &
-    "} $3 = {$2, NIM_NIL, $4};$n" &
-    "static NIM_CONST struct {$n" &
-    "  NI len;$n" &
-    "  $6 p;$n" &
-    "} $5 = {$2, ($6)&$3};$n", [
-    getTypeDesc(p.module, base), rope(len(n)), payload, data,
-    result, getTypeDesc(p.module, t)])
+    "} $3 = {$2, NIM_NIL, $4};$n", [
+    getTypeDesc(p.module, base), rope(len(n)), payload, data])
+  result = "{$1, ($2*)&$3}" % [rope(len(n)), getSeqPayloadType(p.module, t), payload]
 
 proc genConstExpr(p: BProc, n: PNode): Rope =
   case n.kind