** 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. */
| 485 | ** 2 to 'finishpcall' to skip the 2 first values when returning results. |
| 486 | */ |
| 487 | static int luaB_xpcall (lua_State *L) { |
| 488 | int status; |
| 489 | int n = lua_gettop(L); |
| 490 | luaL_checktype(L, 2, LUA_TFUNCTION); /* check error function */ |
| 491 | lua_pushboolean(L, 1); /* first result */ |
| 492 | lua_pushvalue(L, 1); /* function */ |
| 493 | lua_rotate(L, 3, 2); /* move them below function's arguments */ |
| 494 | status = lua_pcallk(L, n - 2, LUA_MULTRET, 2, 2, finishpcall); |
| 495 | return finishpcall(L, status, 2); |
| 496 | } |
| 497 | |
| 498 | |
| 499 | static int luaB_tostring (lua_State *L) { |
nothing calls this directly
no test coverage detected