| 2463 | |
| 2464 | |
| 2465 | LUA_API void lua_getfenv (lua_State *L, int idx) { |
| 2466 | StkId o; |
| 2467 | lua_lock(L); |
| 2468 | o = index2adr(L, idx); |
| 2469 | api_checkvalidindex(L, o); |
| 2470 | switch (ttype(o)) { |
| 2471 | case LUA_TFUNCTION: |
| 2472 | sethvalue(L, L->top, clvalue(o)->c.env); |
| 2473 | break; |
| 2474 | case LUA_TUSERDATA: |
| 2475 | sethvalue(L, L->top, uvalue(o)->env); |
| 2476 | break; |
| 2477 | case LUA_TTHREAD: |
| 2478 | setobj2s(L, L->top, gt(thvalue(o))); |
| 2479 | break; |
| 2480 | default: |
| 2481 | setnilvalue(L->top); |
| 2482 | break; |
| 2483 | } |
| 2484 | api_incr_top(L); |
| 2485 | lua_unlock(L); |
| 2486 | } |
| 2487 | |
| 2488 | |
| 2489 | /* |
no test coverage detected