lua

A copy of the Lua development repository
Log | Files | Refs | README

commit be0d951be86ae7628ec22bb8b4b75870c21817ff
parent a9dbc2d64129d54379192b240623b41d8705a465
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date:   Wed, 24 May 2017 15:54:27 -0300

bug: cannot reuse a dying upvalue

Diffstat:
Mlfunc.c | 4++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lfunc.c b/lfunc.c @@ -1,5 +1,5 @@ /* -** $Id: lfunc.c,v 2.47 2017/04/11 18:41:09 roberto Exp roberto $ +** $Id: lfunc.c,v 2.48 2017/04/30 20:43:26 roberto Exp roberto $ ** Auxiliary functions to manipulate prototypes and closures ** See Copyright Notice in lua.h */ @@ -63,7 +63,7 @@ UpVal *luaF_findupval (lua_State *L, StkId level) { lua_assert(isintwups(L) || L->openupval == NULL); while ((p = *pp) != NULL && p->v >= level) { lua_assert(upisopen(p)); - if (p->v == level) /* found a corresponding upvalue? */ + if (p->v == level && !isdead(G(L), p)) /* corresponding upvalue? */ return p; /* return it */ pp = &p->u.open.next; }