** This function can be called during a signal, under "reasonable" ** assumptions. ** Fields 'basehookcount' and 'hookcount' (set by 'resethookcount') ** are for debug only, and it is no problem if they get arbitrary ** values (causes at most one wrong hook call). 'hookmask' is an atomic ** value. We assume that pointers are atomic too (e.g., gcc ensures that ** for all platforms where it runs). M
| 129 | ** before being called (see 'luaD_hook'). |
| 130 | */ |
| 131 | LUA_API void lua_sethook (lua_State *L, lua_Hook func, int mask, int count) { |
| 132 | if (func == NULL || mask == 0) { /* turn off hooks? */ |
| 133 | mask = 0; |
| 134 | func = NULL; |
| 135 | } |
| 136 | L->hook = func; |
| 137 | L->basehookcount = count; |
| 138 | resethookcount(L); |
| 139 | L->hookmask = cast_byte(mask); |
| 140 | if (mask) |
| 141 | settraps(L->ci); /* to trace inside 'luaV_execute' */ |
| 142 | } |
| 143 | |
| 144 | |
| 145 | LUA_API lua_Hook lua_gethook (lua_State *L) { |
no test coverage detected