From 85764fc7ea5932b3e8176645ae353946dcd5227f Mon Sep 17 00:00:00 2001 From: Harold Cindy Date: Mon, 19 Dec 2022 21:49:33 +0000 Subject: [PATCH] Fix lua_*upvalue() when upvalue names aren't in debug info --- VM/src/lapi.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/VM/src/lapi.cpp b/VM/src/lapi.cpp index d2091c6b..1528aa39 100644 --- a/VM/src/lapi.cpp +++ b/VM/src/lapi.cpp @@ -1285,10 +1285,12 @@ static const char* aux_upvalue(StkId fi, int n, TValue** val) else { Proto* p = f->l.p; - if (!(1 <= n && n <= p->sizeupvalues)) + if (!(1 <= n && n <= p->nups)) // not a valid upvalue return NULL; TValue* r = &f->l.uprefs[n - 1]; *val = ttisupval(r) ? upvalue(r)->v : r; + if (!(1 <= n && n <= p->sizeupvalues)) // don't have a name for this upvalue + return ""; return getstr(p->upvalues[n - 1]); } }