** Do a protected call with error handling. After 'lua_rotate', the ** stack will have ; so, the function passes ** 2 to 'finishpcall' to skip the 2 first values when returning results. */
| 432 | ** 2 to 'finishpcall' to skip the 2 first values when returning results. |
| 433 | */ |
| 434 | static int luaB_xpcall (lua_State *L) { |
| 435 | int status; |
| 436 | int n = lua_gettop(L); |
| 437 | luaL_checktype(L, 2, LUA_TFUNCTION); /* check error function */ |
| 438 | lua_pushboolean(L, 1); /* first result */ |
| 439 | lua_pushvalue(L, 1); /* function */ |
| 440 | lua_rotate(L, 3, 2); /* move them below function's arguments */ |
| 441 | status = lua_pcallk(L, n - 2, LUA_MULTRET, 2, 2, finishpcall); |
| 442 | return finishpcall(L, status, 2); |
| 443 | } |
| 444 | |
| 445 | |
| 446 | static int luaB_tostring (lua_State *L) { |
nothing calls this directly
no test coverage detected