aboutsummaryrefslogtreecommitdiff
path: root/lparser.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2022-10-29 12:06:37 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2022-10-29 12:06:37 -0300
commit413a393e6222482f46599e138bebac162610a572 (patch)
tree181517f8ec8d56f9101de33f4891729044f244de /lparser.c
parentba089bcb08a0efc6c26fb5c1e3c9d61c00cc012c (diff)
downloadlua-413a393e6222482f46599e138bebac162610a572.tar.gz
lua-413a393e6222482f46599e138bebac162610a572.tar.bz2
lua-413a393e6222482f46599e138bebac162610a572.zip
Stack indices changed to union's
That will allow to change pointers to offsets while reallocating the stack.
Diffstat (limited to 'lparser.c')
-rw-r--r--lparser.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/lparser.c b/lparser.c
index fe693b57..24668c24 100644
--- a/lparser.c
+++ b/lparser.c
@@ -1944,10 +1944,10 @@ LClosure *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff,
1944 LexState lexstate; 1944 LexState lexstate;
1945 FuncState funcstate; 1945 FuncState funcstate;
1946 LClosure *cl = luaF_newLclosure(L, 1); /* create main closure */ 1946 LClosure *cl = luaF_newLclosure(L, 1); /* create main closure */
1947 setclLvalue2s(L, L->top, cl); /* anchor it (to avoid being collected) */ 1947 setclLvalue2s(L, L->top.p, cl); /* anchor it (to avoid being collected) */
1948 luaD_inctop(L); 1948 luaD_inctop(L);
1949 lexstate.h = luaH_new(L); /* create table for scanner */ 1949 lexstate.h = luaH_new(L); /* create table for scanner */
1950 sethvalue2s(L, L->top, lexstate.h); /* anchor it */ 1950 sethvalue2s(L, L->top.p, lexstate.h); /* anchor it */
1951 luaD_inctop(L); 1951 luaD_inctop(L);
1952 funcstate.f = cl->p = luaF_newproto(L); 1952 funcstate.f = cl->p = luaF_newproto(L);
1953 luaC_objbarrier(L, cl, cl->p); 1953 luaC_objbarrier(L, cl, cl->p);
@@ -1961,7 +1961,7 @@ LClosure *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff,
1961 lua_assert(!funcstate.prev && funcstate.nups == 1 && !lexstate.fs); 1961 lua_assert(!funcstate.prev && funcstate.nups == 1 && !lexstate.fs);
1962 /* all scopes should be correctly finished */ 1962 /* all scopes should be correctly finished */
1963 lua_assert(dyd->actvar.n == 0 && dyd->gt.n == 0 && dyd->label.n == 0); 1963 lua_assert(dyd->actvar.n == 0 && dyd->gt.n == 0 && dyd->label.n == 0);
1964 L->top--; /* remove scanner's table */ 1964 L->top.p--; /* remove scanner's table */
1965 return cl; /* closure is on the stack, too */ 1965 return cl; /* closure is on the stack, too */
1966} 1966}
1967 1967