Fix lua_*upvalue() when upvalue names aren't in debug info

This commit is contained in:
Harold Cindy 2022-12-19 21:49:33 +00:00
parent fb2f146123
commit 85764fc7ea

View file

@ -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]);
}
}