diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2024-06-26 14:46:44 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2024-06-26 14:46:44 -0300 |
| commit | fb7e5b76c9d41108c399cf4d16470018b717007b (patch) | |
| tree | cfc2b875d139727f1847100d8ae0950bee3d4f56 /lcode.c | |
| parent | c1dc08e8e8e22af9902a6341b4a9a9a7811954cc (diff) | |
| download | lua-fb7e5b76c9d41108c399cf4d16470018b717007b.tar.gz lua-fb7e5b76c9d41108c399cf4d16470018b717007b.tar.bz2 lua-fb7e5b76c9d41108c399cf4d16470018b717007b.zip | |
Clearer code for controlling maximum registers
Plus, added a test to check that limit.
Diffstat (limited to 'lcode.c')
| -rw-r--r-- | lcode.c | 6 |
1 files changed, 1 insertions, 5 deletions
| @@ -31,10 +31,6 @@ | |||
| 31 | #include "lvm.h" | 31 | #include "lvm.h" |
| 32 | 32 | ||
| 33 | 33 | ||
| 34 | /* Maximum number of registers in a Lua function (must fit in 8 bits) */ | ||
| 35 | #define MAXREGS 255 | ||
| 36 | |||
| 37 | |||
| 38 | #define hasjumps(e) ((e)->t != (e)->f) | 34 | #define hasjumps(e) ((e)->t != (e)->f) |
| 39 | 35 | ||
| 40 | 36 | ||
| @@ -466,7 +462,7 @@ static int luaK_codek (FuncState *fs, int reg, int k) { | |||
| 466 | void luaK_checkstack (FuncState *fs, int n) { | 462 | void luaK_checkstack (FuncState *fs, int n) { |
| 467 | int newstack = fs->freereg + n; | 463 | int newstack = fs->freereg + n; |
| 468 | if (newstack > fs->f->maxstacksize) { | 464 | if (newstack > fs->f->maxstacksize) { |
| 469 | if (newstack >= MAXREGS) | 465 | if (newstack > MAX_FSTACK) |
| 470 | luaX_syntaxerror(fs->ls, | 466 | luaX_syntaxerror(fs->ls, |
| 471 | "function or expression needs too many registers"); | 467 | "function or expression needs too many registers"); |
| 472 | fs->f->maxstacksize = cast_byte(newstack); | 468 | fs->f->maxstacksize = cast_byte(newstack); |
