aboutsummaryrefslogtreecommitdiff
path: root/lcode.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2024-06-26 14:46:44 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2024-06-26 14:46:44 -0300
commitfb7e5b76c9d41108c399cf4d16470018b717007b (patch)
treecfc2b875d139727f1847100d8ae0950bee3d4f56 /lcode.c
parentc1dc08e8e8e22af9902a6341b4a9a9a7811954cc (diff)
downloadlua-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.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/lcode.c b/lcode.c
index 79c15132..bc0a3341 100644
--- a/lcode.c
+++ b/lcode.c
@@ -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) {
466void luaK_checkstack (FuncState *fs, int n) { 462void 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);