'luaF_newLclosure' gets prototype of new closure as argument

This commit is contained in:
Roberto Ierusalimschy 2010-06-04 10:06:15 -03:00
parent 3819c30e55
commit 545f43065f
2 changed files with 4 additions and 5 deletions

5
ldo.c
View File

@ -1,5 +1,5 @@
/*
** $Id: ldo.c,v 2.86 2010/04/18 13:22:48 roberto Exp roberto $
** $Id: ldo.c,v 2.87 2010/05/05 18:49:56 roberto Exp roberto $
** Stack and Call structure of Lua
** See Copyright Notice in lua.h
*/
@ -630,8 +630,7 @@ static void f_parser (lua_State *L, void *ud) {
: luaY_parser(L, p->z, &p->buff, &p->varl, p->name);
setptvalue2s(L, L->top, tf);
incr_top(L);
cl = luaF_newLclosure(L, tf->sizeupvalues);
cl->l.p = tf;
cl = luaF_newLclosure(L, tf);
setclvalue(L, L->top - 1, cl);
for (i = 0; i < tf->sizeupvalues; i++) /* initialize upvalues */
cl->l.upvals[i] = luaF_newupval(L);

View File

@ -1,5 +1,5 @@
/*
** $Id: lfunc.h,v 2.4 2005/04/25 19:24:10 roberto Exp roberto $
** $Id: lfunc.h,v 2.5 2010/03/26 20:58:11 roberto Exp roberto $
** Auxiliary functions to manipulate prototypes and closures
** See Copyright Notice in lua.h
*/
@ -20,7 +20,7 @@
LUAI_FUNC Proto *luaF_newproto (lua_State *L);
LUAI_FUNC Closure *luaF_newCclosure (lua_State *L, int nelems);
LUAI_FUNC Closure *luaF_newLclosure (lua_State *L, int nelems);
LUAI_FUNC Closure *luaF_newLclosure (lua_State *L, Proto *p);
LUAI_FUNC UpVal *luaF_newupval (lua_State *L);
LUAI_FUNC UpVal *luaF_findupval (lua_State *L, StkId level);
LUAI_FUNC void luaF_close (lua_State *L, StkId level);