From 969b8c1f14f69c1406f00df3b5f375a9efb7b78f Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Fri, 26 Apr 2019 11:13:01 -0300 Subject: Fixed bug with to-be-closed variables in base C level To-be-closed variables in C use 'ci.nresults' to code that there is a variable to be closed in that function. The intialization of the base C level (the one "running" when calling API functions outside any Lua call) did not initialize 'ci.nresults', creating (correct) warnings in valgrind. --- lstate.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lstate.c') diff --git a/lstate.c b/lstate.c index 463a47d2..387cd362 100644 --- a/lstate.c +++ b/lstate.c @@ -196,6 +196,8 @@ static void stack_init (lua_State *L1, lua_State *L) { ci->next = ci->previous = NULL; ci->callstatus = CIST_C; ci->func = L1->top; + ci->u.c.k = NULL; + ci->nresults = 0; setnilvalue(s2v(L1->top)); /* 'function' entry for this 'ci' */ L1->top++; ci->top = L1->top + LUA_MINSTACK; -- cgit v1.2.1