| 4139 | |
| 4140 | |
| 4141 | void luaK_storevar (FuncState *fs, expdesc *var, expdesc *ex) { |
| 4142 | switch (var->k) { |
| 4143 | case VLOCAL: { |
| 4144 | freeexp(fs, ex); |
| 4145 | exp2reg(fs, ex, var->u.s.info); |
| 4146 | return; |
| 4147 | } |
| 4148 | case VUPVAL: { |
| 4149 | int e = luaK_exp2anyreg(fs, ex); |
| 4150 | luaK_codeABC(fs, OP_SETUPVAL, e, var->u.s.info, 0); |
| 4151 | break; |
| 4152 | } |
| 4153 | case VGLOBAL: { |
| 4154 | int e = luaK_exp2anyreg(fs, ex); |
| 4155 | luaK_codeABx(fs, OP_SETGLOBAL, e, var->u.s.info); |
| 4156 | break; |
| 4157 | } |
| 4158 | case VINDEXED: { |
| 4159 | int e = luaK_exp2RK(fs, ex); |
| 4160 | luaK_codeABC(fs, OP_SETTABLE, var->u.s.info, var->u.s.aux, e); |
| 4161 | break; |
| 4162 | } |
| 4163 | default: { |
| 4164 | lua_assert(0); /* invalid var kind to store */ |
| 4165 | break; |
| 4166 | } |
| 4167 | } |
| 4168 | freeexp(fs, ex); |
| 4169 | } |
| 4170 | |
| 4171 | |
| 4172 | void luaK_self (FuncState *fs, expdesc *e, expdesc *key) { |
no test coverage detected