diff options
author | Mike Pall <mike> | 2010-02-08 05:28:57 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2010-02-08 05:28:57 +0100 |
commit | 4424027844bdcdb76e90e0994efafeee7ea5cc1f (patch) | |
tree | c23e3595ae292e669cb39b8d377e790df57c9591 /src/lj_lex.c | |
parent | 48d93d8c84eb72e720d90ed7861f353a2c417470 (diff) | |
download | luajit-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.c | 3 |
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) | |||
339 | void lj_lex_cleanup(lua_State *L, LexState *ls) | 341 | void 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 | } |