diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2018-12-27 14:32:29 -0200 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2018-12-27 14:32:29 -0200 |
| commit | ba7da13ec5938f978c37d63aa40a3e340b301f79 (patch) | |
| tree | c1f22403954f6e0c6d17c8495c11509103313c9a /lparser.c | |
| parent | da37ac9c7894186a0e2e0e6f1f5f00b825fd1555 (diff) | |
| download | lua-ba7da13ec5938f978c37d63aa40a3e340b301f79.tar.gz lua-ba7da13ec5938f978c37d63aa40a3e340b301f79.tar.bz2 lua-ba7da13ec5938f978c37d63aa40a3e340b301f79.zip | |
Changes in the control of C-stack overflow
* unification of the 'nny' and 'nCcalls' counters;
* external C functions ('lua_CFunction') count more "slots" in
the C stack (to allow for their possible use of buffers)
* added a new test script specific for C-stack overflows. (Most
of those tests were already present, but concentrating them
in a single script easies the task of checking whether
'LUAI_MAXCCALLS' is adequate in a system.)
Diffstat (limited to 'lparser.c')
| -rw-r--r-- | lparser.c | 8 |
1 files changed, 5 insertions, 3 deletions
| @@ -367,10 +367,12 @@ static void adjust_assign (LexState *ls, int nvars, int nexps, expdesc *e) { | |||
| 367 | } | 367 | } |
| 368 | 368 | ||
| 369 | 369 | ||
| 370 | #define enterlevel(ls) luaE_incCcalls((ls)->L) | 370 | /* |
| 371 | 371 | ** Macros to limit the maximum recursion depth while parsing | |
| 372 | */ | ||
| 373 | #define enterlevel(ls) luaE_enterCcall((ls)->L) | ||
| 372 | 374 | ||
| 373 | #define leavelevel(ls) ((ls)->L->nCcalls--) | 375 | #define leavelevel(ls) luaE_exitCcall((ls)->L) |
| 374 | 376 | ||
| 375 | 377 | ||
| 376 | /* | 378 | /* |
