| 274 | |
| 275 | |
| 276 | static int precheck (const Proto *pt) { |
| 277 | check(pt->maxstacksize <= MAXSTACK); |
| 278 | check(pt->numparams+(pt->is_vararg & VARARG_HASARG) <= pt->maxstacksize); |
| 279 | check(!(pt->is_vararg & VARARG_NEEDSARG) || |
| 280 | (pt->is_vararg & VARARG_HASARG)); |
| 281 | check(pt->sizeupvalues <= pt->nups); |
| 282 | check(pt->sizelineinfo == pt->sizecode || pt->sizelineinfo == 0); |
| 283 | check(pt->sizecode > 0 && GET_OPCODE(pt->code[pt->sizecode-1]) == OP_RETURN); |
| 284 | return 1; |
| 285 | } |
| 286 | |
| 287 | |
| 288 | #define checkopenop(pt,pc) luaG_checkopenop((pt)->code[(pc)+1]) |