summaryrefslogtreecommitdiff
path: root/lparser.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2017-12-06 16:36:31 -0200
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2017-12-06 16:36:31 -0200
commit49dfaf7447ab707d17fc6061fe1d59c187e4e221 (patch)
treea2864af4cacbcd225ca33e27087a6cf39fe6a1de /lparser.c
parent348fa1ca56efeb81ef66d8f09c3cd1405b0a121d (diff)
downloadlua-github-49dfaf7447ab707d17fc6061fe1d59c187e4e221.tar.gz
avoid using one function for different tasks (malloc, free, etc.)
Diffstat (limited to 'lparser.c')
-rw-r--r--lparser.c25
1 files changed, 9 insertions, 16 deletions
diff --git a/lparser.c b/lparser.c
index 1d46c6f2..6155a851 100644
--- a/lparser.c
+++ b/lparser.c
@@ -1,5 +1,5 @@
/*
-** $Id: lparser.c,v 2.168 2017/11/23 16:35:54 roberto Exp roberto $
+** $Id: lparser.c,v 2.169 2017/11/30 13:29:18 roberto Exp roberto $
** Lua Parser
** See Copyright Notice in lua.h
*/
@@ -569,21 +569,14 @@ static void close_func (LexState *ls) {
luaK_ret(fs, 0, 0); /* final return */
leaveblock(fs);
luaK_finish(fs);
- luaM_reallocvector(L, f->code, f->sizecode, fs->pc, Instruction);
- f->sizecode = fs->pc;
- luaM_reallocvector(L, f->lineinfo, f->sizelineinfo, fs->pc, ls_byte);
- f->sizelineinfo = fs->pc;
- luaM_reallocvector(L, f->abslineinfo, f->sizeabslineinfo,
- fs->nabslineinfo, AbsLineInfo);
- f->sizeabslineinfo = fs->nabslineinfo;
- luaM_reallocvector(L, f->k, f->sizek, fs->nk, TValue);
- f->sizek = fs->nk;
- luaM_reallocvector(L, f->p, f->sizep, fs->np, Proto *);
- f->sizep = fs->np;
- luaM_reallocvector(L, f->locvars, f->sizelocvars, fs->nlocvars, LocVar);
- f->sizelocvars = fs->nlocvars;
- luaM_reallocvector(L, f->upvalues, f->sizeupvalues, fs->nups, Upvaldesc);
- f->sizeupvalues = fs->nups;
+ luaM_shrinkvector(L, f->code, f->sizecode, fs->pc, Instruction);
+ luaM_shrinkvector(L, f->lineinfo, f->sizelineinfo, fs->pc, ls_byte);
+ luaM_shrinkvector(L, f->abslineinfo, f->sizeabslineinfo,
+ fs->nabslineinfo, AbsLineInfo);
+ luaM_shrinkvector(L, f->k, f->sizek, fs->nk, TValue);
+ luaM_shrinkvector(L, f->p, f->sizep, fs->np, Proto *);
+ luaM_shrinkvector(L, f->locvars, f->sizelocvars, fs->nlocvars, LocVar);
+ luaM_shrinkvector(L, f->upvalues, f->sizeupvalues, fs->nups, Upvaldesc);
lua_assert(fs->bl == NULL);
ls->fs = fs->prev;
luaC_checkGC(L);