浏览代码

Removed uneeded check in parser

In a constructor, each field generates at least one opcode, and the
number of opcodes is limited by INT_MAX. Therefore, the counters for
number of fields cannot exceed this limit. (The current limit for
items in the hash part of a table has a limit smaller than INT_MAX.
However, as long as there are no overflows, the logic for table
resizing will handle that limit.)
Roberto Ierusalimschy 1 月之前
父节点
当前提交
519c57d597
共有 1 个文件被更改,包括 0 次插入1 次删除
  1. 0 1
      lparser.c

+ 0 - 1
lparser.c

@@ -908,7 +908,6 @@ static void recfield (LexState *ls, ConsControl *cc) {
     codename(ls, &key);
     codename(ls, &key);
   else  /* ls->t.token == '[' */
   else  /* ls->t.token == '[' */
     yindex(ls, &key);
     yindex(ls, &key);
-  luaY_checklimit(fs, cc->nh, INT_MAX / 2, "items in a constructor");
   cc->nh++;
   cc->nh++;
   checknext(ls, '=');
   checknext(ls, '=');
   tab = *cc->t;
   tab = *cc->t;