PROXYCACHE key weak

This commit is contained in:
Cloud Wu
2017-06-05 19:59:17 +08:00
parent a8b5b36737
commit 7a4189f830

View File

@@ -313,23 +313,24 @@ llen(lua_State *L) {
} }
static void static void
gen_metatable(lua_State *L) { new_weak_table(lua_State *L, const char *mode) {
lua_newtable(L); // NODECACHE { pointer:table }
lua_createtable(L, 0, 1); // weak meta table lua_createtable(L, 0, 1); // weak meta table
lua_pushstring(L, "kv"); lua_pushstring(L, mode);
lua_setfield(L, -2, "__mode"); lua_setfield(L, -2, "__mode");
lua_newtable(L); // NODECACHE lua_setmetatable(L, -2); // make NODECACHE weak
lua_pushvalue(L, -2); }
lua_setmetatable(L, -2); // make NODECACGE weak
static void
gen_metatable(lua_State *L) {
new_weak_table(L, "kv"); // NODECACHE { pointer:table }
lua_setfield(L, LUA_REGISTRYINDEX, NODECACHE); lua_setfield(L, LUA_REGISTRYINDEX, NODECACHE);
lua_newtable(L); // PROXYCACHE new_weak_table(L, "k"); // PROXYCACHE { table:userdata }
lua_pushvalue(L, -2);
lua_setmetatable(L, -2); // make NODECACGE weak
lua_setfield(L, LUA_REGISTRYINDEX, PROXYCACHE); lua_setfield(L, LUA_REGISTRYINDEX, PROXYCACHE);
lua_pop(L, 1); // pop weak meta
lua_newtable(L); lua_newtable(L);
lua_setfield(L, LUA_REGISTRYINDEX, TABLES); lua_setfield(L, LUA_REGISTRYINDEX, TABLES);