From fc74bab5299667a439a4b741078c2ae4be86a4a7 Mon Sep 17 00:00:00 2001 From: Mattia Giambirtone Date: Fri, 7 Oct 2022 16:27:08 +0200 Subject: [PATCH] Minor fix to the VM and updated closures test --- src/backend/vm.nim | 4 ++-- tests/closures.pn | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/backend/vm.nim b/src/backend/vm.nim index ece8847..b105d4d 100644 --- a/src/backend/vm.nim +++ b/src/backend/vm.nim @@ -1025,7 +1025,7 @@ proc run*(self: PeonVM, chunk: Chunk) = # for one GC in this VM :( when defined(gcOrc): GC_disableOrc() - when not defined(gcArc): + when not defined(gcArc) and not defined(gcOrc): GC_disable() GC_disableMarkAndSweep() try: @@ -1039,7 +1039,7 @@ proc run*(self: PeonVM, chunk: Chunk) = # but *just in case* when defined(gcOrc): GC_enable_Orc() - when not defined(gcArc): + when not defined(gcArc) and not defined(gcOrc): GC_enable() GC_enableMarkAndSweep() diff --git a/tests/closures.pn b/tests/closures.pn index 9318314..60fd4d8 100644 --- a/tests/closures.pn +++ b/tests/closures.pn @@ -15,5 +15,6 @@ fn makeClosure(n: int): fn: fn: int { var closure = makeClosure(38); var inner = closure(); -print(inner()); # 38! - +print(inner()); # 38 +print(inner()); # 38 +print(makeClosure(420)()()); # 420 \ No newline at end of file