aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 {