diff options
-rw-r--r-- | ldo.c | 2 | ||||
-rw-r--r-- | lgc.c | 4 | ||||
-rw-r--r-- | lstate.c | 2 |
3 files changed, 4 insertions, 4 deletions
@@ -192,7 +192,7 @@ int luaD_reallocstack (lua_State *L, int newsize, int raiseerror) { | |||
192 | else return 0; /* do not raise an error */ | 192 | else return 0; /* do not raise an error */ |
193 | } | 193 | } |
194 | for (; lim < newsize; lim++) | 194 | for (; lim < newsize; lim++) |
195 | setnilvalue(s2v(newstack + lim)); /* erase new segment */ | 195 | setnilvalue(s2v(newstack + lim + EXTRA_STACK)); /* erase new segment */ |
196 | correctstack(L, L->stack, newstack); | 196 | correctstack(L, L->stack, newstack); |
197 | L->stack = newstack; | 197 | L->stack = newstack; |
198 | L->stack_last = L->stack + newsize; | 198 | L->stack_last = L->stack + newsize; |
@@ -632,8 +632,8 @@ static int traversethread (global_State *g, lua_State *th) { | |||
632 | for (uv = th->openupval; uv != NULL; uv = uv->u.open.next) | 632 | for (uv = th->openupval; uv != NULL; uv = uv->u.open.next) |
633 | markobject(g, uv); /* open upvalues cannot be collected */ | 633 | markobject(g, uv); /* open upvalues cannot be collected */ |
634 | if (g->gcstate == GCSatomic) { /* final traversal? */ | 634 | if (g->gcstate == GCSatomic) { /* final traversal? */ |
635 | for (; o < th->stack_last; o++) /* clear not-marked stack slice */ | 635 | for (; o < th->stack_last + EXTRA_STACK; o++) |
636 | setnilvalue(s2v(o)); | 636 | setnilvalue(s2v(o)); /* clear dead stack slice */ |
637 | /* 'remarkupvals' may have removed thread from 'twups' list */ | 637 | /* 'remarkupvals' may have removed thread from 'twups' list */ |
638 | if (!isintwups(th) && th->openupval != NULL) { | 638 | if (!isintwups(th) && th->openupval != NULL) { |
639 | th->twups = g->twups; /* link it back to the list */ | 639 | th->twups = g->twups; /* link it back to the list */ |
@@ -181,7 +181,7 @@ static void stack_init (lua_State *L1, lua_State *L) { | |||
181 | int i; CallInfo *ci; | 181 | int i; CallInfo *ci; |
182 | /* initialize stack array */ | 182 | /* initialize stack array */ |
183 | L1->stack = luaM_newvector(L, BASIC_STACK_SIZE + EXTRA_STACK, StackValue); | 183 | L1->stack = luaM_newvector(L, BASIC_STACK_SIZE + EXTRA_STACK, StackValue); |
184 | for (i = 0; i < BASIC_STACK_SIZE; i++) | 184 | for (i = 0; i < BASIC_STACK_SIZE + EXTRA_STACK; i++) |
185 | setnilvalue(s2v(L1->stack + i)); /* erase new stack */ | 185 | setnilvalue(s2v(L1->stack + i)); /* erase new stack */ |
186 | L1->top = L1->stack; | 186 | L1->top = L1->stack; |
187 | L1->stack_last = L1->stack + BASIC_STACK_SIZE; | 187 | L1->stack_last = L1->stack + BASIC_STACK_SIZE; |