diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2017-12-06 16:36:31 -0200 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2017-12-06 16:36:31 -0200 |
commit | 49dfaf7447ab707d17fc6061fe1d59c187e4e221 (patch) | |
tree | a2864af4cacbcd225ca33e27087a6cf39fe6a1de /lparser.c | |
parent | 348fa1ca56efeb81ef66d8f09c3cd1405b0a121d (diff) | |
download | lua-49dfaf7447ab707d17fc6061fe1d59c187e4e221.tar.gz lua-49dfaf7447ab707d17fc6061fe1d59c187e4e221.tar.bz2 lua-49dfaf7447ab707d17fc6061fe1d59c187e4e221.zip |
avoid using one function for different tasks (malloc, free, etc.)
Diffstat (limited to 'lparser.c')
-rw-r--r-- | lparser.c | 25 |
1 files changed, 9 insertions, 16 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lparser.c,v 2.168 2017/11/23 16:35:54 roberto Exp roberto $ | 2 | ** $Id: lparser.c,v 2.169 2017/11/30 13:29:18 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 | */ |
@@ -569,21 +569,14 @@ static void close_func (LexState *ls) { | |||
569 | luaK_ret(fs, 0, 0); /* final return */ | 569 | luaK_ret(fs, 0, 0); /* final return */ |
570 | leaveblock(fs); | 570 | leaveblock(fs); |
571 | luaK_finish(fs); | 571 | luaK_finish(fs); |
572 | luaM_reallocvector(L, f->code, f->sizecode, fs->pc, Instruction); | 572 | luaM_shrinkvector(L, f->code, f->sizecode, fs->pc, Instruction); |
573 | f->sizecode = fs->pc; | 573 | luaM_shrinkvector(L, f->lineinfo, f->sizelineinfo, fs->pc, ls_byte); |
574 | luaM_reallocvector(L, f->lineinfo, f->sizelineinfo, fs->pc, ls_byte); | 574 | luaM_shrinkvector(L, f->abslineinfo, f->sizeabslineinfo, |
575 | f->sizelineinfo = fs->pc; | 575 | fs->nabslineinfo, AbsLineInfo); |
576 | luaM_reallocvector(L, f->abslineinfo, f->sizeabslineinfo, | 576 | luaM_shrinkvector(L, f->k, f->sizek, fs->nk, TValue); |
577 | fs->nabslineinfo, AbsLineInfo); | 577 | luaM_shrinkvector(L, f->p, f->sizep, fs->np, Proto *); |
578 | f->sizeabslineinfo = fs->nabslineinfo; | 578 | luaM_shrinkvector(L, f->locvars, f->sizelocvars, fs->nlocvars, LocVar); |
579 | luaM_reallocvector(L, f->k, f->sizek, fs->nk, TValue); | 579 | luaM_shrinkvector(L, f->upvalues, f->sizeupvalues, fs->nups, Upvaldesc); |
580 | f->sizek = fs->nk; | ||
581 | luaM_reallocvector(L, f->p, f->sizep, fs->np, Proto *); | ||
582 | f->sizep = fs->np; | ||
583 | luaM_reallocvector(L, f->locvars, f->sizelocvars, fs->nlocvars, LocVar); | ||
584 | f->sizelocvars = fs->nlocvars; | ||
585 | luaM_reallocvector(L, f->upvalues, f->sizeupvalues, fs->nups, Upvaldesc); | ||
586 | f->sizeupvalues = fs->nups; | ||
587 | lua_assert(fs->bl == NULL); | 580 | lua_assert(fs->bl == NULL); |
588 | ls->fs = fs->prev; | 581 | ls->fs = fs->prev; |
589 | luaC_checkGC(L); | 582 | luaC_checkGC(L); |