diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2009-12-22 13:32:50 -0200 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2009-12-22 13:32:50 -0200 |
commit | f84b575cfa52dc832751846aa0b4c8ff437d3ca3 (patch) | |
tree | 246ef484b08d132d006c16a6c8cbe55e61c3bfce /lua.h | |
parent | 3cb343efd644fb771b6d8193406afd49527dc1ec (diff) | |
download | lua-f84b575cfa52dc832751846aa0b4c8ff437d3ca3.tar.gz lua-f84b575cfa52dc832751846aa0b4c8ff437d3ca3.tar.bz2 lua-f84b575cfa52dc832751846aa0b4c8ff437d3ca3.zip |
no more pseudoindex LUA_GLOBALSINDEX; global table now accessible
through registry
Diffstat (limited to 'lua.h')
-rw-r--r-- | lua.h | 15 |
1 files changed, 9 insertions, 6 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lua.h,v 1.254 2009/12/17 16:20:01 roberto Exp roberto $ | 2 | ** $Id: lua.h,v 1.255 2009/12/18 15:32:36 roberto Exp roberto $ |
3 | ** Lua - A Scripting Language | 3 | ** Lua - A Scripting Language |
4 | ** Lua.org, PUC-Rio, Brazil (http://www.lua.org) | 4 | ** Lua.org, PUC-Rio, Brazil (http://www.lua.org) |
5 | ** See Copyright Notice at the end of this file | 5 | ** See Copyright Notice at the end of this file |
@@ -35,8 +35,7 @@ | |||
35 | */ | 35 | */ |
36 | #define LUA_REGISTRYINDEX LUAI_FIRSTPSEUDOIDX | 36 | #define LUA_REGISTRYINDEX LUAI_FIRSTPSEUDOIDX |
37 | #define LUA_ENVIRONINDEX (LUA_REGISTRYINDEX - 1) | 37 | #define LUA_ENVIRONINDEX (LUA_REGISTRYINDEX - 1) |
38 | #define LUA_GLOBALSINDEX (LUA_ENVIRONINDEX - 1) | 38 | #define lua_upvalueindex(i) (LUA_ENVIRONINDEX - (i)) |
39 | #define lua_upvalueindex(i) (LUA_GLOBALSINDEX-(i)) | ||
40 | 39 | ||
41 | 40 | ||
42 | /* thread status */ | 41 | /* thread status */ |
@@ -92,7 +91,8 @@ typedef void * (*lua_Alloc) (void *ud, void *ptr, size_t osize, size_t nsize); | |||
92 | /* predefined values in the registry */ | 91 | /* predefined values in the registry */ |
93 | #define LUA_RIDX_MAINTHREAD 1 | 92 | #define LUA_RIDX_MAINTHREAD 1 |
94 | #define LUA_RIDX_CPCALL 2 | 93 | #define LUA_RIDX_CPCALL 2 |
95 | #define LUA_RIDX_LAST LUA_RIDX_CPCALL | 94 | #define LUA_RIDX_GLOBALS 3 |
95 | #define LUA_RIDX_LAST LUA_RIDX_GLOBALS | ||
96 | 96 | ||
97 | 97 | ||
98 | /* type of numbers in Lua */ | 98 | /* type of numbers in Lua */ |
@@ -315,8 +315,8 @@ LUA_API void (lua_setallocf) (lua_State *L, lua_Alloc f, void *ud); | |||
315 | #define lua_pushliteral(L, s) \ | 315 | #define lua_pushliteral(L, s) \ |
316 | lua_pushlstring(L, "" s, (sizeof(s)/sizeof(char))-1) | 316 | lua_pushlstring(L, "" s, (sizeof(s)/sizeof(char))-1) |
317 | 317 | ||
318 | #define lua_setglobal(L,s) lua_setfield(L, LUA_GLOBALSINDEX, (s)) | 318 | #define lua_pushglobaltable(L) \ |
319 | #define lua_getglobal(L,s) lua_getfield(L, LUA_GLOBALSINDEX, (s)) | 319 | lua_rawgeti(L, LUA_REGISTRYINDEX, LUA_RIDX_GLOBALS) |
320 | 320 | ||
321 | #define lua_tostring(L,i) lua_tolstring(L, (i), NULL) | 321 | #define lua_tostring(L,i) lua_tolstring(L, (i), NULL) |
322 | 322 | ||
@@ -343,6 +343,9 @@ LUA_API void (lua_setallocf) (lua_State *L, lua_Alloc f, void *ud); | |||
343 | #define lua_equal(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPEQ) | 343 | #define lua_equal(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPEQ) |
344 | #define lua_lessthan(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPLT) | 344 | #define lua_lessthan(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPLT) |
345 | 345 | ||
346 | #define lua_setglobal(L,s) lua_setfield(L, LUA_ENVIRONINDEX, (s)) | ||
347 | #define lua_getglobal(L,s) lua_getfield(L, LUA_ENVIRONINDEX, (s)) | ||
348 | |||
346 | #endif | 349 | #endif |
347 | 350 | ||
348 | 351 | ||