MCPcopy Create free account
hub / github.com/Snapchat/KeyDB / lua_setfenv

Function lua_setfenv

deps/lua/src/lapi.c:734–760  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

732
733
734LUA_API int lua_setfenv (lua_State *L, int idx) {
735 StkId o;
736 int res = 1;
737 lua_lock(L);
738 api_checknelems(L, 1);
739 o = index2adr(L, idx);
740 api_checkvalidindex(L, o);
741 api_check(L, ttistable(L->top - 1));
742 switch (ttype(o)) {
743 case LUA_TFUNCTION:
744 clvalue(o)->c.env = hvalue(L->top - 1);
745 break;
746 case LUA_TUSERDATA:
747 uvalue(o)->env = hvalue(L->top - 1);
748 break;
749 case LUA_TTHREAD:
750 sethvalue(L, gt(thvalue(o)), hvalue(L->top - 1));
751 break;
752 default:
753 res = 0;
754 break;
755 }
756 if (res) luaC_objbarrier(L, gcvalue(o), hvalue(L->top - 1));
757 L->top--;
758 lua_unlock(L);
759 return res;
760}
761
762
763/*

Callers 5

luaB_setfenvFunction · 0.85
setfenvFunction · 0.85
createstdfileFunction · 0.85
luaopen_ioFunction · 0.85
db_setfenvFunction · 0.85

Calls 1

index2adrFunction · 0.85

Tested by

no test coverage detected