about summary refs log tree commit diff
path: root/pkg/lang/vm
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/lang/vm')
-rw-r--r--pkg/lang/vm/value/value.go4
1 files changed, 3 insertions, 1 deletions
diff --git a/pkg/lang/vm/value/value.go b/pkg/lang/vm/value/value.go
index e2750f4..21cf962 100644
--- a/pkg/lang/vm/value/value.go
+++ b/pkg/lang/vm/value/value.go
@@ -177,7 +177,9 @@ func (v Value) Clone(m mem.Mem) (Value, error) {
 func (v Value) Drop(m mem.Mem) error {
 	// If value has an outlet, don't drop it and instead move it to the outlet.
 	if !v.outlet.IsNull() {
-		return m.Set(v.outlet, OutletCell(v))
+		outlet := v.outlet
+		v.outlet = mem.NullPtr // Reset outlet to null
+		return m.Set(outlet, OutletCell(v))
 	}
 
 	if v.t == StringType {