aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2005-07-06 15:07:30 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2005-07-06 15:07:30 -0300
commitb3f7a43019f08ec47b90236f1da97d23d0d8e5bf (patch)
treee75687c631ab1b77b864d0a6099b93a4228f4c52
parent7f97ec286e5ab29db06ed43aab01cc5cb673bb64 (diff)
downloadlua-b3f7a43019f08ec47b90236f1da97d23d0d8e5bf.tar.gz
lua-b3f7a43019f08ec47b90236f1da97d23d0d8e5bf.tar.bz2
lua-b3f7a43019f08ec47b90236f1da97d23d0d8e5bf.zip
lua_setfenv/lua_getfenv should also manipulate threads
-rw-r--r--lapi.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/lapi.c b/lapi.c
index 17873e9b..e401b7b1 100644
--- a/lapi.c
+++ b/lapi.c
@@ -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;