| 7830 | |
| 7831 | |
| 7832 | static void adjust_assign (LexState *ls, int nvars, int nexps, expdesc *e) { |
| 7833 | FuncState *fs = ls->fs; |
| 7834 | int extra = nvars - nexps; |
| 7835 | if (hasmultret(e->k)) { |
| 7836 | extra++; /* includes call itself */ |
| 7837 | if (extra < 0) extra = 0; |
| 7838 | luaK_setreturns(fs, e, extra); /* last exp. provides the difference */ |
| 7839 | if (extra > 1) luaK_reserveregs(fs, extra-1); |
| 7840 | } |
| 7841 | else { |
| 7842 | if (e->k != VVOID) luaK_exp2nextreg(fs, e); /* close last expression */ |
| 7843 | if (extra > 0) { |
| 7844 | int reg = fs->freereg; |
| 7845 | luaK_reserveregs(fs, extra); |
| 7846 | luaK_nil(fs, reg, extra); |
| 7847 | } |
| 7848 | } |
| 7849 | } |
| 7850 | |
| 7851 | |
| 7852 | static void enterlevel (LexState *ls) { |
no test coverage detected