MCPcopy Create free account
hub / github.com/Snapchat/KeyDB / luaK_nil

Function luaK_nil

deps/lua/src/lcode.c:35–56  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

33
34
35void luaK_nil (FuncState *fs, int from, int n) {
36 Instruction *previous;
37 if (fs->pc > fs->lasttarget) { /* no jumps to current position? */
38 if (fs->pc == 0) { /* function start? */
39 if (from >= fs->nactvar)
40 return; /* positions are already clean */
41 }
42 else {
43 previous = &fs->f->code[fs->pc-1];
44 if (GET_OPCODE(*previous) == OP_LOADNIL) {
45 int pfrom = GETARG_A(*previous);
46 int pto = GETARG_B(*previous);
47 if (pfrom <= from && from <= pto+1) { /* can connect both? */
48 if (from+n-1 > pto)
49 SETARG_B(*previous, from+n-1);
50 return;
51 }
52 }
53 }
54 }
55 luaK_codeABC(fs, OP_LOADNIL, from, from+n-1, 0); /* else no optimization */
56}
57
58
59int luaK_jump (FuncState *fs) {

Callers 2

adjust_assignFunction · 0.85
discharge2regFunction · 0.85

Calls 1

luaK_codeABCFunction · 0.85

Tested by

no test coverage detected