| 621 | |
| 622 | |
| 623 | LUA_API void lua_getfenv (lua_State *L, int idx) { |
| 624 | StkId o; |
| 625 | lua_lock(L); |
| 626 | o = index2adr(L, idx); |
| 627 | api_checkvalidindex(L, o); |
| 628 | switch (ttype(o)) { |
| 629 | case LUA_TFUNCTION: |
| 630 | sethvalue(L, L->top, clvalue(o)->c.env); |
| 631 | break; |
| 632 | case LUA_TUSERDATA: |
| 633 | sethvalue(L, L->top, uvalue(o)->env); |
| 634 | break; |
| 635 | case LUA_TTHREAD: |
| 636 | setobj2s(L, L->top, gt(thvalue(o))); |
| 637 | break; |
| 638 | default: |
| 639 | setnilvalue(L->top); |
| 640 | break; |
| 641 | } |
| 642 | api_incr_top(L); |
| 643 | lua_unlock(L); |
| 644 | } |
| 645 | |
| 646 | |
| 647 | /* |
no test coverage detected