diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2002-10-16 17:40:58 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2002-10-16 17:40:58 -0300 |
commit | c196348717dfda116726145220e5d1311547980e (patch) | |
tree | 83149c29559b888eed7a28e5f1558a67a912cf90 /lparser.c | |
parent | 669129a6d8210e758ba94ea2786a370946572f7d (diff) | |
download | lua-c196348717dfda116726145220e5d1311547980e.tar.gz lua-c196348717dfda116726145220e5d1311547980e.tar.bz2 lua-c196348717dfda116726145220e5d1311547980e.zip |
in case of memory allocation errors, sizecode and sizelineinfo can
be different
Diffstat (limited to 'lparser.c')
-rw-r--r-- | lparser.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lparser.c,v 1.194 2002/08/30 19:09:21 roberto Exp roberto $ | 2 | ** $Id: lparser.c,v 1.195 2002/10/08 18:46:08 roberto Exp roberto $ |
3 | ** Lua Parser | 3 | ** Lua Parser |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -337,8 +337,9 @@ static void close_func (LexState *ls) { | |||
337 | removevars(ls, 0); | 337 | removevars(ls, 0); |
338 | luaK_codeABC(fs, OP_RETURN, 0, 1, 0); /* final return */ | 338 | luaK_codeABC(fs, OP_RETURN, 0, 1, 0); /* final return */ |
339 | luaM_reallocvector(L, f->code, f->sizecode, fs->pc, Instruction); | 339 | luaM_reallocvector(L, f->code, f->sizecode, fs->pc, Instruction); |
340 | luaM_reallocvector(L, f->lineinfo, f->sizecode, fs->pc, int); | ||
341 | f->sizecode = fs->pc; | 340 | f->sizecode = fs->pc; |
341 | luaM_reallocvector(L, f->lineinfo, f->sizelineinfo, fs->pc, int); | ||
342 | f->sizelineinfo = fs->pc; | ||
342 | luaM_reallocvector(L, f->k, f->sizek, fs->nk, TObject); | 343 | luaM_reallocvector(L, f->k, f->sizek, fs->nk, TObject); |
343 | f->sizek = fs->nk; | 344 | f->sizek = fs->nk; |
344 | luaM_reallocvector(L, f->p, f->sizep, fs->np, Proto *); | 345 | luaM_reallocvector(L, f->p, f->sizep, fs->np, Proto *); |