From 46ce79723123d3706b124f736cecf6bd5d2bac06 Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Sat, 27 Apr 2019 09:36:34 +0200 Subject: [PATCH] newruntime: progress... --- compiler/injectdestructors.nim | 8 +++----- tests/destructor/twidgets.nim | 5 ++++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/compiler/injectdestructors.nim b/compiler/injectdestructors.nim index 197d154901..3fbcf008be 100644 --- a/compiler/injectdestructors.nim +++ b/compiler/injectdestructors.nim @@ -732,11 +732,9 @@ proc p(n: PNode; c: var Con): PNode = # make sure it's destroyed at the end of the proc: if not isUnpackedTuple(it[0].sym): c.destroys.add genDestroy(c, v.typ, v) - if ri.kind != nkEmpty: - let r = moveOrCopy(v, ri, c) - result.add r - else: - result.add keepVar(n, it, c) + if ri.kind != nkEmpty: + let r = moveOrCopy(v, ri, c) + result.add r else: result.add keepVar(n, it, c) of nkCallKinds: diff --git a/tests/destructor/twidgets.nim b/tests/destructor/twidgets.nim index f7af1f75f8..0495769bd0 100644 --- a/tests/destructor/twidgets.nim +++ b/tests/destructor/twidgets.nim @@ -5,6 +5,9 @@ clicked!''' disabled: "true" """ +import core / allocators +import system / ansi_c + type Widget* = ref object of RootObj drawImpl: owned(proc (self: Widget)) @@ -71,4 +74,4 @@ proc main = main() let (a, d) = allocCounters() -discard cprintf("%ld %ld new: %ld\n", a, d, allocs) +discard cprintf("%ld %ld alloc/dealloc pairs: %ld\n", a, d, allocs)