aboutsummaryrefslogtreecommitdiff
path: root/lstate.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2020-11-08 11:52:26 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2020-11-08 11:52:26 -0300
commitd28265256110a0c5437247d443ddedc2a7aab116 (patch)
treee1aacb5eaa1ef67127aa8206e85eee32d36697be /lstate.c
parent58216600eba27d472de33dbb89e2f3e629bf8a59 (diff)
downloadlua-d28265256110a0c5437247d443ddedc2a7aab116.tar.gz
lua-d28265256110a0c5437247d443ddedc2a7aab116.tar.bz2
lua-d28265256110a0c5437247d443ddedc2a7aab116.zip
Bug when growing a stack
When a stack grows, its extra area can be in use, and it becomes part of the common area. So, the extra area must be kept correct all the times. (Bug introduced by commit 5aa36e894f5.)
Diffstat (limited to 'lstate.c')
-rw-r--r--lstate.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lstate.c b/lstate.c
index 42274292..1c7b8791 100644
--- a/lstate.c
+++ b/lstate.c
@@ -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;