From fd92b1f891167e110cfd2d7ec85b5c53d5c586c1 Mon Sep 17 00:00:00 2001 From: lemon Date: Mon, 10 Oct 2022 11:21:21 +0200 Subject: bug fixes --- pez.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'pez.c') diff --git a/pez.c b/pez.c index 84d24c9..bc68b38 100644 --- a/pez.c +++ b/pez.c @@ -475,14 +475,21 @@ delproto(PezContext *cx, Proto *pr) } static void -closeups(PezContext *cx, Val *vals) +closeups(PezContext *cx, Val *ptr) { - for (Upval *up = cx->openup, *next; up; up = next) { + for (Upval *up = cx->openup, *prev = NULL, *next; up; up = next) { next = up->nextup; - if (up->ptr >= vals) { - cx->openup = next; + if (up->ptr >= ptr) { + if (prev) { + prev->nextup = next; + } + if (up == cx->openup) { + cx->openup = next; + } up->slot = *up->ptr; up->ptr = &up->slot; + } else { + prev = up; } } } -- cgit v1.2.3