From f90bc248b3c3c18941a96038b2a7517ad571d8b1 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Tue, 8 Aug 2000 15:26:05 -0300 Subject: new structure for line information --- lparser.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'lparser.c') diff --git a/lparser.c b/lparser.c index 74dd8dc1..deae943f 100644 --- a/lparser.c +++ b/lparser.c @@ -1,5 +1,5 @@ /* -** $Id: lparser.c,v 1.101 2000/06/28 20:20:36 roberto Exp roberto $ +** $Id: lparser.c,v 1.102 2000/06/30 14:35:17 roberto Exp roberto $ ** LL(1) Parser and code generator for Lua ** See Copyright Notice in lua.h */ @@ -327,6 +327,8 @@ static void open_func (LexState *ls, FuncState *fs) { f->source = ls->source; fs->pc = 0; fs->lasttarget = 0; + fs->nlineinfo = 0; + fs->lastline = 0; fs->jlt = NO_JUMP; f->code = NULL; f->maxstacksize = 0; @@ -348,6 +350,10 @@ static void close_func (LexState *ls) { luaM_reallocvector(L, f->kproto, f->nkproto, Proto *); luaI_registerlocalvar(ls, NULL, -1); /* flag end of vector */ luaM_reallocvector(L, f->locvars, fs->nvars, LocVar); + if (fs->debug) { + luaM_reallocvector(L, f->lineinfo, fs->nlineinfo+1, int); + f->lineinfo[fs->nlineinfo] = MAX_INT; /* end flag */ + } ls->fs = fs->prev; LUA_ASSERT(fs->bl == NULL, "wrong list end"); } -- cgit v1.2.3-55-g6feb