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