diff options
Diffstat (limited to 'lapi.c')
| -rw-r--r-- | lapi.c | 25 |
1 files changed, 11 insertions, 14 deletions
| @@ -137,6 +137,15 @@ LUA_API void lua_insert (lua_State *L, int index) { | |||
| 137 | } | 137 | } |
| 138 | 138 | ||
| 139 | 139 | ||
| 140 | LUA_API void lua_replace (lua_State *L, int index) { | ||
| 141 | lua_lock(L); | ||
| 142 | api_checknelems(L, 1); | ||
| 143 | setobj(luaA_index(L, index), L->top - 1); | ||
| 144 | L->top--; | ||
| 145 | lua_unlock(L); | ||
| 146 | } | ||
| 147 | |||
| 148 | |||
| 140 | LUA_API void lua_pushvalue (lua_State *L, int index) { | 149 | LUA_API void lua_pushvalue (lua_State *L, int index) { |
| 141 | lua_lock(L); | 150 | lua_lock(L); |
| 142 | setobj(L->top, luaA_index(L, index)); | 151 | setobj(L->top, luaA_index(L, index)); |
| @@ -172,7 +181,7 @@ LUA_API int lua_iscfunction (lua_State *L, int index) { | |||
| 172 | LUA_API int lua_isnumber (lua_State *L, int index) { | 181 | LUA_API int lua_isnumber (lua_State *L, int index) { |
| 173 | TObject n; | 182 | TObject n; |
| 174 | TObject *o = luaA_indexAcceptable(L, index); | 183 | TObject *o = luaA_indexAcceptable(L, index); |
| 175 | return (o != NULL && (ttype(o) == LUA_TNUMBER || luaV_tonumber(o, &n))); | 184 | return (o != NULL && luaV_tonumber(o, &n)); |
| 176 | } | 185 | } |
| 177 | 186 | ||
| 178 | 187 | ||
| @@ -213,8 +222,7 @@ LUA_API int lua_lessthan (lua_State *L, int index1, int index2) { | |||
| 213 | LUA_API lua_Number lua_tonumber (lua_State *L, int index) { | 222 | LUA_API lua_Number lua_tonumber (lua_State *L, int index) { |
| 214 | TObject n; | 223 | TObject n; |
| 215 | const TObject *o = luaA_indexAcceptable(L, index); | 224 | const TObject *o = luaA_indexAcceptable(L, index); |
| 216 | if (o != NULL && | 225 | if (o != NULL && (o = luaV_tonumber(o, &n)) != NULL) |
| 217 | (ttype(o) == LUA_TNUMBER || (o = luaV_tonumber(o, &n)) != NULL)) | ||
| 218 | return nvalue(o); | 226 | return nvalue(o); |
| 219 | else | 227 | else |
| 220 | return 0; | 228 | return 0; |
| @@ -477,17 +485,6 @@ LUA_API void lua_rawseti (lua_State *L, int index, int n) { | |||
| 477 | } | 485 | } |
| 478 | 486 | ||
| 479 | 487 | ||
| 480 | LUA_API void lua_setglobals (lua_State *L) { | ||
| 481 | StkId newtable; | ||
| 482 | lua_lock(L); | ||
| 483 | api_checknelems(L, 1); | ||
| 484 | newtable = --L->top; | ||
| 485 | api_check(L, ttype(newtable) == LUA_TTABLE); | ||
| 486 | setobj(gt(L), newtable); | ||
| 487 | lua_unlock(L); | ||
| 488 | } | ||
| 489 | |||
| 490 | |||
| 491 | LUA_API void lua_setmetatable (lua_State *L, int objindex) { | 488 | LUA_API void lua_setmetatable (lua_State *L, int objindex) { |
| 492 | StkId obj, mt; | 489 | StkId obj, mt; |
| 493 | lua_lock(L); | 490 | lua_lock(L); |
