MCPcopy Create free account
hub / github.com/F-Stack/f-stack / luaK_goiftrue

Function luaK_goiftrue

freebsd/contrib/openzfs/module/lua/lcode.c:619–640  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

617
618
619void luaK_goiftrue (FuncState *fs, expdesc *e) {
620 int pc; /* pc of last jump */
621 luaK_dischargevars(fs, e);
622 switch (e->k) {
623 case VJMP: {
624 invertjump(fs, e);
625 pc = e->u.info;
626 break;
627 }
628 case VK: case VKNUM: case VTRUE: {
629 pc = NO_JUMP; /* always true; do nothing */
630 break;
631 }
632 default: {
633 pc = jumponcond(fs, e, 0);
634 break;
635 }
636 }
637 luaK_concat(fs, &e->f, pc); /* insert last jump in `f' list */
638 luaK_patchtohere(fs, e->t);
639 e->t = NO_JUMP;
640}
641
642
643void luaK_goiffalse (FuncState *fs, expdesc *e) {

Callers 3

condFunction · 0.70
test_then_blockFunction · 0.70
luaK_infixFunction · 0.70

Calls 5

luaK_dischargevarsFunction · 0.70
invertjumpFunction · 0.70
jumponcondFunction · 0.70
luaK_concatFunction · 0.70
luaK_patchtohereFunction · 0.70

Tested by 1

test_then_blockFunction · 0.56