| 6224 | |
| 6225 | |
| 6226 | static void traverseclosure (global_State *g, Closure *cl) { |
| 6227 | markobject(g, cl->c.env); |
| 6228 | if (cl->c.isC) { |
| 6229 | int i; |
| 6230 | for (i=0; i<cl->c.nupvalues; i++) /* mark its upvalues */ |
| 6231 | markvalue(g, &cl->c.upvalue[i]); |
| 6232 | } |
| 6233 | else { |
| 6234 | int i; |
| 6235 | lua_assert(cl->l.nupvalues == cl->l.p->nups); |
| 6236 | markobject(g, cl->l.p); |
| 6237 | for (i=0; i<cl->l.nupvalues; i++) /* mark its upvalues */ |
| 6238 | markobject(g, cl->l.upvals[i]); |
| 6239 | } |
| 6240 | } |
| 6241 | |
| 6242 | |
| 6243 | static void checkstacksizes (lua_State *L, StkId max) { |