Lines Matching refs:cc

443 static void recfield (LexState *ls, struct ConsControl *cc) {  in recfield()  argument
450 luaY_checklimit(fs, cc->nh, MAX_INT, "items in a constructor"); in recfield()
455 cc->nh++; in recfield()
459 luaK_codeABC(fs, OP_SETTABLE, cc->t->u.s.info, rkkey, luaK_exp2RK(fs, &val)); in recfield()
464 static void closelistfield (FuncState *fs, struct ConsControl *cc) { in closelistfield() argument
465 if (cc->v.k == VVOID) return; /* there is no list item */ in closelistfield()
466 luaK_exp2nextreg(fs, &cc->v); in closelistfield()
467 cc->v.k = VVOID; in closelistfield()
468 if (cc->tostore == LFIELDS_PER_FLUSH) { in closelistfield()
469 luaK_setlist(fs, cc->t->u.s.info, cc->na, cc->tostore); /* flush */ in closelistfield()
470 cc->tostore = 0; /* no more items pending */ in closelistfield()
475 static void lastlistfield (FuncState *fs, struct ConsControl *cc) { in lastlistfield() argument
476 if (cc->tostore == 0) return; in lastlistfield()
477 if (hasmultret(cc->v.k)) { in lastlistfield()
478 luaK_setmultret(fs, &cc->v); in lastlistfield()
479 luaK_setlist(fs, cc->t->u.s.info, cc->na, LUA_MULTRET); in lastlistfield()
480 cc->na--; /* do not count last expression (unknown number of elements) */ in lastlistfield()
483 if (cc->v.k != VVOID) in lastlistfield()
484 luaK_exp2nextreg(fs, &cc->v); in lastlistfield()
485 luaK_setlist(fs, cc->t->u.s.info, cc->na, cc->tostore); in lastlistfield()
490 static void listfield (LexState *ls, struct ConsControl *cc) { in listfield() argument
491 expr(ls, &cc->v); in listfield()
492 luaY_checklimit(ls->fs, cc->na, MAX_INT, "items in a constructor"); in listfield()
493 cc->na++; in listfield()
494 cc->tostore++; in listfield()
503 struct ConsControl cc; in constructor() local
504 cc.na = cc.nh = cc.tostore = 0; in constructor()
505 cc.t = t; in constructor()
507 init_exp(&cc.v, VVOID, 0); /* no value (yet) */ in constructor()
511 lua_assert(cc.v.k == VVOID || cc.tostore > 0); in constructor()
513 closelistfield(fs, &cc); in constructor()
518 listfield(ls, &cc); in constructor()
520 recfield(ls, &cc); in constructor()
524 recfield(ls, &cc); in constructor()
528 listfield(ls, &cc); in constructor()
534 lastlistfield(fs, &cc); in constructor()
535 SETARG_B(fs->f->code[pc], luaO_int2fb(cc.na)); /* set initial array size */ in constructor()
536 SETARG_C(fs->f->code[pc], luaO_int2fb(cc.nh)); /* set initial table size */ in constructor()