aboutsummaryrefslogtreecommitdiff
path: root/lstate.c
diff options
context:
space:
mode:
Diffstat (limited to 'lstate.c')
-rw-r--r--lstate.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/lstate.c b/lstate.c
index 3268209e..0b9bb671 100644
--- a/lstate.c
+++ b/lstate.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lstate.c,v 2.55 2009/06/01 19:09:26 roberto Exp roberto $ 2** $Id: lstate.c,v 2.56 2009/06/18 18:59:18 roberto Exp roberto $
3** Global State 3** Global State
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -52,12 +52,6 @@ CallInfo *luaE_extendCI (lua_State *L) {
52 L->ci->next = ci; 52 L->ci->next = ci;
53 ci->previous = L->ci; 53 ci->previous = L->ci;
54 ci->next = NULL; 54 ci->next = NULL;
55 if (++L->nci >= LUAI_MAXCALLS) {
56 if (L->nci == LUAI_MAXCALLS) /* overflow? */
57 luaG_runerror(L, "stack overflow");
58 if (L->nci >= LUAI_MAXCALLS + LUAI_EXTRACALLS) /* again? */
59 luaD_throw(L, LUA_ERRERR); /* error while handling overflow */
60 }
61 return ci; 55 return ci;
62} 56}
63 57
@@ -69,7 +63,6 @@ void luaE_freeCI (lua_State *L) {
69 while ((ci = next) != NULL) { 63 while ((ci = next) != NULL) {
70 next = ci->next; 64 next = ci->next;
71 luaM_free(L, ci); 65 luaM_free(L, ci);
72 L->nci--;
73 } 66 }
74} 67}
75 68
@@ -77,12 +70,12 @@ void luaE_freeCI (lua_State *L) {
77static void stack_init (lua_State *L1, lua_State *L) { 70static void stack_init (lua_State *L1, lua_State *L) {
78 int i; 71 int i;
79 /* initialize stack array */ 72 /* initialize stack array */
80 L1->stack = luaM_newvector(L, BASIC_STACK_SIZE + EXTRA_STACK, TValue); 73 L1->stack = luaM_newvector(L, BASIC_STACK_SIZE, TValue);
81 L1->stacksize = BASIC_STACK_SIZE + EXTRA_STACK; 74 L1->stacksize = BASIC_STACK_SIZE;
82 for (i = 0; i < BASIC_STACK_SIZE + EXTRA_STACK; i++) 75 for (i = 0; i < BASIC_STACK_SIZE; i++)
83 setnilvalue(L1->stack + i); /* erase new stack */ 76 setnilvalue(L1->stack + i); /* erase new stack */
84 L1->top = L1->stack; 77 L1->top = L1->stack;
85 L1->stack_last = L1->stack+(L1->stacksize - EXTRA_STACK)-1; 78 L1->stack_last = L1->stack + L1->stacksize - EXTRA_STACK;
86 /* initialize first ci */ 79 /* initialize first ci */
87 L1->ci->func = L1->top; 80 L1->ci->func = L1->top;
88 setnilvalue(L1->top++); /* 'function' entry for this 'ci' */ 81 setnilvalue(L1->top++); /* 'function' entry for this 'ci' */
@@ -94,7 +87,6 @@ static void stack_init (lua_State *L1, lua_State *L) {
94static void freestack (lua_State *L) { 87static void freestack (lua_State *L) {
95 L->ci = &L->base_ci; /* reset 'ci' list */ 88 L->ci = &L->base_ci; /* reset 'ci' list */
96 luaE_freeCI(L); 89 luaE_freeCI(L);
97 lua_assert(L->nci == 0);
98 luaM_freearray(L, L->stack, L->stacksize); 90 luaM_freearray(L, L->stack, L->stacksize);
99} 91}
100 92
@@ -131,7 +123,6 @@ static void preinit_state (lua_State *L, global_State *g) {
131 L->status = LUA_OK; 123 L->status = LUA_OK;
132 L->base_ci.next = L->base_ci.previous = NULL; 124 L->base_ci.next = L->base_ci.previous = NULL;
133 L->ci = &L->base_ci; 125 L->ci = &L->base_ci;
134 L->nci = 0;
135 L->errfunc = 0; 126 L->errfunc = 0;
136 setnilvalue(gt(L)); 127 setnilvalue(gt(L));
137} 128}