diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2011-08-23 14:24:34 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2011-08-23 14:24:34 -0300 |
| commit | 3dc5475e239e2da52a380288ae8b293a6b019f81 (patch) | |
| tree | 3da13bd67407f9717b5fb9a024dca38b78589bfc /lparser.c | |
| parent | 8a008a20579dd6818cb770147c8765b72eb2acfe (diff) | |
| download | lua-3dc5475e239e2da52a380288ae8b293a6b019f81.tar.gz lua-3dc5475e239e2da52a380288ae8b293a6b019f81.tar.bz2 lua-3dc5475e239e2da52a380288ae8b293a6b019f81.zip | |
'nCcalls' should be local to each thread, as each thread may have its
own C stack (with LuaThreads or something similar)
Diffstat (limited to 'lparser.c')
| -rw-r--r-- | lparser.c | 12 |
1 files changed, 6 insertions, 6 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: lparser.c,v 2.114 2011/07/15 12:50:29 roberto Exp roberto $ | 2 | ** $Id: lparser.c,v 2.115 2011/07/27 18:09:01 roberto Exp roberto $ |
| 3 | ** Lua Parser | 3 | ** Lua Parser |
| 4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
| 5 | */ | 5 | */ |
| @@ -328,13 +328,13 @@ static void adjust_assign (LexState *ls, int nvars, int nexps, expdesc *e) { | |||
| 328 | 328 | ||
| 329 | 329 | ||
| 330 | static void enterlevel (LexState *ls) { | 330 | static void enterlevel (LexState *ls) { |
| 331 | global_State *g = G(ls->L); | 331 | lua_State *L = ls->L; |
| 332 | ++g->nCcalls; | 332 | ++L->nCcalls; |
| 333 | checklimit(ls->fs, g->nCcalls, LUAI_MAXCCALLS, "syntax levels"); | 333 | checklimit(ls->fs, L->nCcalls, LUAI_MAXCCALLS, "syntax levels"); |
| 334 | } | 334 | } |
| 335 | 335 | ||
| 336 | 336 | ||
| 337 | #define leavelevel(ls) (G((ls)->L)->nCcalls--) | 337 | #define leavelevel(ls) ((ls)->L->nCcalls--) |
| 338 | 338 | ||
| 339 | 339 | ||
| 340 | static void closegoto (LexState *ls, int g, Labeldesc *label) { | 340 | static void closegoto (LexState *ls, int g, Labeldesc *label) { |
| @@ -1144,7 +1144,7 @@ static void assignment (LexState *ls, struct LHS_assign *lh, int nvars) { | |||
| 1144 | primaryexp(ls, &nv.v); | 1144 | primaryexp(ls, &nv.v); |
| 1145 | if (nv.v.k != VINDEXED) | 1145 | if (nv.v.k != VINDEXED) |
| 1146 | check_conflict(ls, lh, &nv.v); | 1146 | check_conflict(ls, lh, &nv.v); |
| 1147 | checklimit(ls->fs, nvars, LUAI_MAXCCALLS - G(ls->L)->nCcalls, | 1147 | checklimit(ls->fs, nvars, LUAI_MAXCCALLS - ls->L->nCcalls, |
| 1148 | "variable names"); | 1148 | "variable names"); |
| 1149 | assignment(ls, &nv, nvars+1); | 1149 | assignment(ls, &nv, nvars+1); |
| 1150 | } | 1150 | } |
