From 50e29525936be4891f9db090f293432913b5f7c0 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Fri, 25 Jan 2002 20:14:54 -0200 Subject: first version of dynamic stack --- ldo.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'ldo.h') diff --git a/ldo.h b/ldo.h index 83ed513b..6b3649d6 100644 --- a/ldo.h +++ b/ldo.h @@ -1,5 +1,5 @@ /* -** $Id: ldo.h,v 1.38 2002/01/11 20:24:39 roberto Exp $ +** $Id: ldo.h,v 1.1 2001/11/29 22:14:34 rieru Exp rieru $ ** Stack and Call structure of Lua ** See Copyright Notice in lua.h */ @@ -16,10 +16,10 @@ ** macro to increment stack top. ** There must be always an empty slot at the L->stack.top */ -#define incr_top {if (L->top == L->stack_last) luaD_checkstack(L, 1); L->top++;} +#define incr_top(L) \ + {if (L->top >= L->stack_last) luaD_growstack(L, 1); L->top++;} - -#define luaD_checkstack(L,n) if (L->stack_last-(n)<=L->top) luaD_stackerror(L) +#define luaD_checkstack(L,n) if (L->stack_last-(n)<=L->top) luaD_growstack(L, n) void luaD_lineHook (lua_State *L, int line, lua_Hook linehook); @@ -27,7 +27,9 @@ void luaD_callHook (lua_State *L, lua_Hook callhook, const char *event); StkId luaD_precall (lua_State *L, StkId func); void luaD_call (lua_State *L, StkId func, int nResults); void luaD_poscall (lua_State *L, int wanted, StkId firstResult); -void luaD_stackerror (lua_State *L); +void luaD_reallocCI (lua_State *L, int newsize); +void luaD_reallocstack (lua_State *L, int newsize); +void luaD_growstack (lua_State *L, int n); void luaD_error (lua_State *L, const char *s); void luaD_breakrun (lua_State *L, int errcode); -- cgit v1.2.3-55-g6feb