# HG changeset patch # User jbe # Date 1406677621 -7200 # Node ID ca27aae3f1a189bc0536da8eecefbc9bcbaab4be # Parent 641619d3fcb150ca812ec25fdcf97c571e99c03a Finished removing all upvalues from JSON library diff -r 641619d3fcb1 -r ca27aae3f1a1 libraries/json/json.c --- a/libraries/json/json.c Wed Jul 30 01:37:57 2014 +0200 +++ b/libraries/json/json.c Wed Jul 30 01:47:01 2014 +0200 @@ -3,14 +3,6 @@ #include #include -#define JSON_UPVAL_LIBRARY lua_upvalueindex(1) -#define JSON_UPVAL_NULLMARK lua_upvalueindex(2) -#define JSON_UPVAL_SHADOWTBL lua_upvalueindex(3) -#define JSON_UPVAL_TYPES lua_upvalueindex(4) -#define JSON_UPVAL_METATABLE lua_upvalueindex(5) -#define JSON_UPVAL_PAIRS_ITERFUNC lua_upvalueindex(6) -#define JSON_UPVAL_IPAIRS_ITERFUNC lua_upvalueindex(7) - #define JSON_REGENT static char #define JSON_REGREF void * @@ -530,15 +522,19 @@ return 1; } +#define json_index_nullmark_idx 3 +#define json_index_shadowtbl_idx 4 + static int json_index(lua_State *L) { lua_settop(L, 2); + json_regfetch(L, json_nullmark); // on stack position 3 json_regfetch(L, json_shadowtbl); lua_pushvalue(L, 1); - lua_rawget(L, -2); + lua_rawget(L, json_index_shadowtbl_idx); if (lua_isnil(L, -1)) return luaL_error(L, "Shadow table not found"); lua_pushvalue(L, 2); lua_rawget(L, -2); - if (lua_rawequal(L, -1, JSON_UPVAL_NULLMARK)) lua_pushnil(L); + if (lua_rawequal(L, -1, json_index_nullmark_idx)) lua_pushnil(L); return 1; }