diff options
Diffstat (limited to 'lparser.c')
-rw-r--r-- | lparser.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lparser.c,v 1.101 2000/06/28 20:20:36 roberto Exp roberto $ | 2 | ** $Id: lparser.c,v 1.102 2000/06/30 14:35:17 roberto Exp roberto $ |
3 | ** LL(1) Parser and code generator for Lua | 3 | ** LL(1) Parser and code generator for Lua |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -327,6 +327,8 @@ static void open_func (LexState *ls, FuncState *fs) { | |||
327 | f->source = ls->source; | 327 | f->source = ls->source; |
328 | fs->pc = 0; | 328 | fs->pc = 0; |
329 | fs->lasttarget = 0; | 329 | fs->lasttarget = 0; |
330 | fs->nlineinfo = 0; | ||
331 | fs->lastline = 0; | ||
330 | fs->jlt = NO_JUMP; | 332 | fs->jlt = NO_JUMP; |
331 | f->code = NULL; | 333 | f->code = NULL; |
332 | f->maxstacksize = 0; | 334 | f->maxstacksize = 0; |
@@ -348,6 +350,10 @@ static void close_func (LexState *ls) { | |||
348 | luaM_reallocvector(L, f->kproto, f->nkproto, Proto *); | 350 | luaM_reallocvector(L, f->kproto, f->nkproto, Proto *); |
349 | luaI_registerlocalvar(ls, NULL, -1); /* flag end of vector */ | 351 | luaI_registerlocalvar(ls, NULL, -1); /* flag end of vector */ |
350 | luaM_reallocvector(L, f->locvars, fs->nvars, LocVar); | 352 | luaM_reallocvector(L, f->locvars, fs->nvars, LocVar); |
353 | if (fs->debug) { | ||
354 | luaM_reallocvector(L, f->lineinfo, fs->nlineinfo+1, int); | ||
355 | f->lineinfo[fs->nlineinfo] = MAX_INT; /* end flag */ | ||
356 | } | ||
351 | ls->fs = fs->prev; | 357 | ls->fs = fs->prev; |
352 | LUA_ASSERT(fs->bl == NULL, "wrong list end"); | 358 | LUA_ASSERT(fs->bl == NULL, "wrong list end"); |
353 | } | 359 | } |