aboutsummaryrefslogtreecommitdiff
path: root/lapi.c
diff options
context:
space:
mode:
Diffstat (limited to 'lapi.c')
-rw-r--r--lapi.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/lapi.c b/lapi.c
index 85ac9328..a3d1f8c1 100644
--- a/lapi.c
+++ b/lapi.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lapi.c,v 1.68 2000/01/13 15:56:03 roberto Exp roberto $ 2** $Id: lapi.c,v 1.69 2000/01/19 12:00:45 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*/
@@ -123,7 +123,7 @@ lua_Object lua_seterrormethod (lua_State *L) {
123 123
124lua_Object lua_gettable (lua_State *L) { 124lua_Object lua_gettable (lua_State *L) {
125 luaA_checkCparams(L, 2); 125 luaA_checkCparams(L, 2);
126 luaV_gettable(L); 126 luaV_gettable(L, L->top--);
127 return luaA_putObjectOnTop(L); 127 return luaA_putObjectOnTop(L);
128} 128}
129 129
@@ -139,10 +139,12 @@ lua_Object lua_rawgettable (lua_State *L) {
139 139
140 140
141void lua_settable (lua_State *L) { 141void lua_settable (lua_State *L) {
142 StkId top;
142 luaA_checkCparams(L, 3); 143 luaA_checkCparams(L, 3);
143 luaD_checkstack(L, 3); /* may need that to call a tag method */ 144 luaD_checkstack(L, 3); /* may need that to call a tag method */
144 luaV_settable(L, L->top-3); 145 top = L->top;
145 L->top -= 2; /* pop table and index */ 146 luaV_settable(L, top-3, top);
147 L->top = top-3; /* pop table, index, and value */
146} 148}
147 149
148 150
@@ -163,7 +165,7 @@ lua_Object lua_createtable (lua_State *L) {
163 165
164lua_Object lua_getglobal (lua_State *L, const char *name) { 166lua_Object lua_getglobal (lua_State *L, const char *name) {
165 luaD_checkstack(L, 3); /* may need that to call a tag method */ 167 luaD_checkstack(L, 3); /* may need that to call a tag method */
166 luaV_getglobal(L, luaS_assertglobalbyname(L, name)); 168 luaV_getglobal(L, luaS_assertglobalbyname(L, name), L->top++);
167 return luaA_putObjectOnTop(L); 169 return luaA_putObjectOnTop(L);
168} 170}
169 171
@@ -177,7 +179,7 @@ lua_Object lua_rawgetglobal (lua_State *L, const char *name) {
177void lua_setglobal (lua_State *L, const char *name) { 179void lua_setglobal (lua_State *L, const char *name) {
178 luaA_checkCparams(L, 1); 180 luaA_checkCparams(L, 1);
179 luaD_checkstack(L, 3); /* may need that to call a tag method */ 181 luaD_checkstack(L, 3); /* may need that to call a tag method */
180 luaV_setglobal(L, luaS_assertglobalbyname(L, name)); 182 luaV_setglobal(L, luaS_assertglobalbyname(L, name), L->top--);
181} 183}
182 184
183 185