lua

A copy of the Lua development repository
Log | Files | Refs | README

commit 8c1fb918027eea52c229907e3c3e371c7c14923a
parent 33b366ec321646890780b96df96eacb558b82f6d
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date:   Mon,  2 Nov 2015 14:09:04 -0200

macro 'incr_top' replaced by function 'luaD_inctop'. (It is not used
in critical time pathes, can save a few bytes without the macro)

Diffstat:
Mldo.c | 15++++++++++++++-
Mldo.h | 4++--
Mlobject.c | 6+++---
Mlparser.c | 6+++---
Mlundump.c | 4++--
5 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/ldo.c b/ldo.c @@ -1,5 +1,5 @@ /* -** $Id: ldo.c,v 2.145 2015/11/02 11:48:59 roberto Exp roberto $ +** $Id: ldo.c,v 2.146 2015/11/02 14:06:01 roberto Exp roberto $ ** Stack and Call structure of Lua ** See Copyright Notice in lua.h */ @@ -150,6 +150,11 @@ int luaD_rawrunprotected (lua_State *L, Pfunc f, void *ud) { /* }====================================================== */ +/* +** {================================================================== +** Stack reallocation +** =================================================================== +*/ static void correctstack (lua_State *L, TValue *oldstack) { CallInfo *ci; UpVal *up; @@ -229,6 +234,14 @@ void luaD_shrinkstack (lua_State *L) { } +void luaD_inctop (lua_State *L) { + luaD_checkstack(L, 1); + L->top++; +} + +/* }================================================================== */ + + void luaD_hook (lua_State *L, int event, int line) { lua_Hook hook = L->hook; if (hook && L->allowhook) { diff --git a/ldo.h b/ldo.h @@ -1,5 +1,5 @@ /* -** $Id: ldo.h,v 2.22 2015/05/22 17:48:19 roberto Exp roberto $ +** $Id: ldo.h,v 2.23 2015/10/21 18:40:47 roberto Exp roberto $ ** Stack and Call structure of Lua ** See Copyright Notice in lua.h */ @@ -28,7 +28,6 @@ #define luaD_checkstack(L,n) luaD_checkstackaux(L,n,,) -#define incr_top(L) {L->top++; luaD_checkstack(L,0);} #define savestack(L,p) ((char *)(p) - (char *)L->stack) #define restorestack(L,n) ((TValue *)((char *)L->stack + (n))) @@ -49,6 +48,7 @@ LUAI_FUNC int luaD_poscall (lua_State *L, StkId firstResult, int nres); LUAI_FUNC void luaD_reallocstack (lua_State *L, int newsize); LUAI_FUNC void luaD_growstack (lua_State *L, int n); LUAI_FUNC void luaD_shrinkstack (lua_State *L); +LUAI_FUNC void luaD_inctop (lua_State *L); LUAI_FUNC l_noret luaD_throw (lua_State *L, int errcode); LUAI_FUNC int luaD_rawrunprotected (lua_State *L, Pfunc f, void *ud); diff --git a/lobject.c b/lobject.c @@ -1,5 +1,5 @@ /* -** $Id: lobject.c,v 2.106 2015/06/26 19:32:07 roberto Exp roberto $ +** $Id: lobject.c,v 2.107 2015/11/02 14:02:35 roberto Exp roberto $ ** Some generic functions over Lua objects ** See Copyright Notice in lua.h */ @@ -347,7 +347,7 @@ void luaO_tostring (lua_State *L, StkId obj) { static void pushstr (lua_State *L, const char *str, size_t l) { setsvalue2s(L, L->top, luaS_newlstr(L, str, l)); - incr_top(L); + luaD_inctop(L); } @@ -385,7 +385,7 @@ const char *luaO_pushvfstring (lua_State *L, const char *fmt, va_list argp) { case 'f': { setfltvalue(L->top, cast_num(va_arg(argp, l_uacNumber))); top2str: - incr_top(L); + luaD_inctop(L); luaO_tostring(L, L->top - 1); break; } diff --git a/lparser.c b/lparser.c @@ -1,5 +1,5 @@ /* -** $Id: lparser.c,v 2.147 2014/12/27 20:31:43 roberto Exp roberto $ +** $Id: lparser.c,v 2.148 2015/10/28 17:28:40 roberto Exp roberto $ ** Lua Parser ** See Copyright Notice in lua.h */ @@ -1627,10 +1627,10 @@ LClosure *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff, FuncState funcstate; LClosure *cl = luaF_newLclosure(L, 1); /* create main closure */ setclLvalue(L, L->top, cl); /* anchor it (to avoid being collected) */ - incr_top(L); + luaD_inctop(L); lexstate.h = luaH_new(L); /* create table for scanner */ sethvalue(L, L->top, lexstate.h); /* anchor it */ - incr_top(L); + luaD_inctop(L); funcstate.f = cl->p = luaF_newproto(L); funcstate.f->source = luaS_new(L, name); /* create and anchor TString */ lua_assert(iswhite(funcstate.f)); /* do not need barrier here */ diff --git a/lundump.c b/lundump.c @@ -1,5 +1,5 @@ /* -** $Id: lundump.c,v 2.42 2015/09/08 15:41:05 roberto Exp roberto $ +** $Id: lundump.c,v 2.43 2015/09/17 15:51:05 roberto Exp roberto $ ** load precompiled Lua chunks ** See Copyright Notice in lua.h */ @@ -269,7 +269,7 @@ LClosure *luaU_undump(lua_State *L, ZIO *Z, const char *name) { checkHeader(&S); cl = luaF_newLclosure(L, LoadByte(&S)); setclLvalue(L, L->top, cl); - incr_top(L); + luaD_inctop(L); cl->p = luaF_newproto(L); LoadFunction(&S, cl->p, NULL); lua_assert(cl->nupvalues == cl->p->sizeupvalues);