MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / luaB_xpcall

Function luaB_xpcall

lib/lua/src/lbaselib.c:487–496  ·  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

485** 2 to 'finishpcall' to skip the 2 first values when returning results.
486*/
487static 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
499static 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