MCPcopy Create free account
hub / github.com/CppCXY/EmmyLuaCodeStyle / luaB_xpcall

Function luaB_xpcall

3rd/lua-5.4.3/src/lbaselib.c:466–475  ·  view source on GitHub ↗

** 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. */

Source from the content-addressed store, hash-verified

464** 2 to 'finishpcall' to skip the 2 first values when returning results.
465*/
466static int luaB_xpcall (lua_State *L) {
467 int status;
468 int n = lua_gettop(L);
469 luaL_checktype(L, 2, LUA_TFUNCTION); /* check error function */
470 lua_pushboolean(L, 1); /* first result */
471 lua_pushvalue(L, 1); /* function */
472 lua_rotate(L, 3, 2); /* move them below function's arguments */
473 status = lua_pcallk(L, n - 2, LUA_MULTRET, 2, 2, finishpcall);
474 return finishpcall(L, status, 2);
475}
476
477
478static int luaB_tostring (lua_State *L) {

Callers

nothing calls this directly

Calls 7

lua_gettopFunction · 0.85
luaL_checktypeFunction · 0.85
lua_pushbooleanFunction · 0.85
lua_pushvalueFunction · 0.85
lua_rotateFunction · 0.85
lua_pcallkFunction · 0.85
finishpcallFunction · 0.85

Tested by

no test coverage detected