From 7392283d9e6b8c1ee31a3ad74ce8d13d4e8b19ec Mon Sep 17 00:00:00 2001 From: Mel Date: Tue, 26 Jul 2022 19:52:31 +0000 Subject: Fix cloning of outlets and don't drop nil cells --- pkg/lang/vm/value/value.go | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'pkg/lang/vm/value/value.go') diff --git a/pkg/lang/vm/value/value.go b/pkg/lang/vm/value/value.go index 953ac8b..5dd5012 100644 --- a/pkg/lang/vm/value/value.go +++ b/pkg/lang/vm/value/value.go @@ -155,6 +155,11 @@ func (v Value) Clone(m mem.Mem) Value { m.Retain(fn.env) } + // If value has an outlet don't copy it into the clone, + // otherwise when the clone is dropped it will also drop the outlet. + // I don't know if this fixes the entire problem, but it seems to work. + v.outlet = mem.NullPtr + return v } -- cgit 1.4.1