Lines Matching refs:cc
656 static void recfield (LexState *ls, struct ConsControl *cc) { in recfield() argument
663 checklimit(fs, cc->nh, MAX_INT, "items in a constructor"); in recfield()
668 cc->nh++; in recfield()
672 luaK_codeABC(fs, OP_SETTABLE, cc->t->u.info, rkkey, luaK_exp2RK(fs, &val)); in recfield()
677 static void closelistfield (FuncState *fs, struct ConsControl *cc) { in closelistfield() argument
678 if (cc->v.k == VVOID) return; /* there is no list item */ in closelistfield()
679 luaK_exp2nextreg(fs, &cc->v); in closelistfield()
680 cc->v.k = VVOID; in closelistfield()
681 if (cc->tostore == LFIELDS_PER_FLUSH) { in closelistfield()
682 luaK_setlist(fs, cc->t->u.info, cc->na, cc->tostore); /* flush */ in closelistfield()
683 cc->tostore = 0; /* no more items pending */ in closelistfield()
688 static void lastlistfield (FuncState *fs, struct ConsControl *cc) { in lastlistfield() argument
689 if (cc->tostore == 0) return; in lastlistfield()
690 if (hasmultret(cc->v.k)) { in lastlistfield()
691 luaK_setmultret(fs, &cc->v); in lastlistfield()
692 luaK_setlist(fs, cc->t->u.info, cc->na, LUA_MULTRET); in lastlistfield()
693 cc->na--; /* do not count last expression (unknown number of elements) */ in lastlistfield()
696 if (cc->v.k != VVOID) in lastlistfield()
697 luaK_exp2nextreg(fs, &cc->v); in lastlistfield()
698 luaK_setlist(fs, cc->t->u.info, cc->na, cc->tostore); in lastlistfield()
703 static void listfield (LexState *ls, struct ConsControl *cc) { in listfield() argument
705 expr(ls, &cc->v); in listfield()
706 checklimit(ls->fs, cc->na, MAX_INT, "items in a constructor"); in listfield()
707 cc->na++; in listfield()
708 cc->tostore++; in listfield()
712 static void field (LexState *ls, struct ConsControl *cc) { in field() argument
717 listfield(ls, cc); in field()
719 recfield(ls, cc); in field()
723 recfield(ls, cc); in field()
727 listfield(ls, cc); in field()
740 struct ConsControl cc; in constructor() local
741 cc.na = cc.nh = cc.tostore = 0; in constructor()
742 cc.t = t; in constructor()
744 init_exp(&cc.v, VVOID, 0); /* no value (yet) */ in constructor()
748 lua_assert(cc.v.k == VVOID || cc.tostore > 0); in constructor()
750 closelistfield(fs, &cc); in constructor()
751 field(ls, &cc); in constructor()
754 lastlistfield(fs, &cc); in constructor()
755 SETARG_B(fs->f->code[pc], luaO_int2fb(cc.na)); /* set initial array size */ in constructor()
756 SETARG_C(fs->f->code[pc], luaO_int2fb(cc.nh)); /* set initial table size */ in constructor()