diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2005-07-06 15:07:30 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2005-07-06 15:07:30 -0300 |
commit | b3f7a43019f08ec47b90236f1da97d23d0d8e5bf (patch) | |
tree | e75687c631ab1b77b864d0a6099b93a4228f4c52 | |
parent | 7f97ec286e5ab29db06ed43aab01cc5cb673bb64 (diff) | |
download | lua-b3f7a43019f08ec47b90236f1da97d23d0d8e5bf.tar.gz lua-b3f7a43019f08ec47b90236f1da97d23d0d8e5bf.tar.bz2 lua-b3f7a43019f08ec47b90236f1da97d23d0d8e5bf.zip |
lua_setfenv/lua_getfenv should also manipulate threads
-rw-r--r-- | lapi.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lapi.c,v 2.43 2005/05/31 14:34:02 roberto Exp roberto $ | 2 | ** $Id: lapi.c,v 2.44 2005/07/05 14:30:31 roberto Exp roberto $ |
3 | ** Lua API | 3 | ** Lua API |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -618,6 +618,9 @@ LUA_API void lua_getfenv (lua_State *L, int idx) { | |||
618 | case LUA_TUSERDATA: | 618 | case LUA_TUSERDATA: |
619 | sethvalue(L, L->top, uvalue(o)->env); | 619 | sethvalue(L, L->top, uvalue(o)->env); |
620 | break; | 620 | break; |
621 | case LUA_TTHREAD: | ||
622 | setobj2s(L, L->top, gt(thvalue(o))); | ||
623 | break; | ||
621 | default: | 624 | default: |
622 | setnilvalue(L->top); | 625 | setnilvalue(L->top); |
623 | break; | 626 | break; |
@@ -736,6 +739,9 @@ LUA_API int lua_setfenv (lua_State *L, int idx) { | |||
736 | case LUA_TUSERDATA: | 739 | case LUA_TUSERDATA: |
737 | uvalue(o)->env = hvalue(L->top - 1); | 740 | uvalue(o)->env = hvalue(L->top - 1); |
738 | break; | 741 | break; |
742 | case LUA_TTHREAD: | ||
743 | sethvalue(L, gt(thvalue(o)), hvalue(L->top - 1)); | ||
744 | break; | ||
739 | default: | 745 | default: |
740 | res = 0; | 746 | res = 0; |
741 | break; | 747 | break; |