summaryrefslogtreecommitdiff
path: root/src/lj_lex.c
diff options
context:
space:
mode:
authorMike Pall <mike>2010-02-08 05:28:57 +0100
committerMike Pall <mike>2010-02-08 05:28:57 +0100
commit4424027844bdcdb76e90e0994efafeee7ea5cc1f (patch)
treec23e3595ae292e669cb39b8d377e790df57c9591 /src/lj_lex.c
parent48d93d8c84eb72e720d90ed7861f353a2c417470 (diff)
downloadluajit-4424027844bdcdb76e90e0994efafeee7ea5cc1f.tar.gz
luajit-4424027844bdcdb76e90e0994efafeee7ea5cc1f.tar.bz2
luajit-4424027844bdcdb76e90e0994efafeee7ea5cc1f.zip
Redesign of prototype generation, part 3: bc and lineinfo.
Use a growable, per-chunk bytecode instruction/line stack. Collect bc/lineinfo for prototype at the end.
Diffstat (limited to 'src/lj_lex.c')
-rw-r--r--src/lj_lex.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lj_lex.c b/src/lj_lex.c
index 6cb785b5..95adb212 100644
--- a/src/lj_lex.c
+++ b/src/lj_lex.c
@@ -311,6 +311,8 @@ void lj_lex_setup(lua_State *L, LexState *ls)
311 ls->vstack = NULL; 311 ls->vstack = NULL;
312 ls->sizevstack = 0; 312 ls->sizevstack = 0;
313 ls->vtop = 0; 313 ls->vtop = 0;
314 ls->bcstack = NULL;
315 ls->sizebcstack = 0;
314 ls->lookahead = TK_eof; /* No look-ahead token. */ 316 ls->lookahead = TK_eof; /* No look-ahead token. */
315 ls->linenumber = 1; 317 ls->linenumber = 1;
316 ls->lastline = 1; 318 ls->lastline = 1;
@@ -339,6 +341,7 @@ void lj_lex_setup(lua_State *L, LexState *ls)
339void lj_lex_cleanup(lua_State *L, LexState *ls) 341void lj_lex_cleanup(lua_State *L, LexState *ls)
340{ 342{
341 global_State *g = G(L); 343 global_State *g = G(L);
344 lj_mem_freevec(g, ls->bcstack, ls->sizebcstack, BCInsLine);
342 lj_mem_freevec(g, ls->vstack, ls->sizevstack, VarInfo); 345 lj_mem_freevec(g, ls->vstack, ls->sizevstack, VarInfo);
343 lj_str_freebuf(g, &ls->sb); 346 lj_str_freebuf(g, &ls->sb);
344} 347}