# HG changeset patch # User jbe # Date 1406760257 -7200 # Node ID 6d2bb696f736dab1ee55f08b03282bd8f3dd02a3 # Parent 35fb4f92a88753c00387e72fa5308bd90c92b192 Simplified C macros for Lua registry handling in JSON library (using lua_rawgetp API function) diff -r 35fb4f92a887 -r 6d2bb696f736 libraries/json/json.c --- a/libraries/json/json.c Wed Jul 30 23:11:38 2014 +0200 +++ b/libraries/json/json.c Thu Jul 31 00:44:17 2014 +0200 @@ -16,11 +16,11 @@ // macros for usage of Lua registry: #define JSON_REGENT char #define JSON_REGPOINTER void * -#define json_pushlightref(L, x) (lua_pushlightuserdata((L), &json_reference.x)) +#define json_pushlightref(L, x) lua_pushlightuserdata((L), &json_reference.x) #define json_regpointer(x) (&json_registry.x) -#define json_regfetchpointer(L, x) (lua_pushlightuserdata((L), (x)), lua_rawget((L), LUA_REGISTRYINDEX)) -#define json_regfetch(L, x) (json_regfetchpointer(L, json_regpointer(x))) -#define json_regstore(L, x) (lua_pushlightuserdata(L, json_regpointer(x)), lua_pushvalue(L, -2), lua_rawset(L, LUA_REGISTRYINDEX)); +#define json_regfetchpointer(L, x) lua_rawgetp((L), LUA_REGISTRYINDEX, (x)) +#define json_regfetch(L, x) json_regfetchpointer(L, json_regpointer(x)) +#define json_regstore(L, x) lua_rawsetp(L, LUA_REGISTRYINDEX, json_regpointer(x)) // generate dummy memory addresses that represent non-modifiable lightuserdata (dummy) objects: static struct {