aboutsummaryrefslogtreecommitdiff
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-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.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 @@
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);