4INPF5IJVGBGPKVKFSWITIPKV2LC3XENRZLDYO5HQWRHNNV47RGQC
SDGK6QEAHVCMRJVWSHZUECXXC5ZSJ2PQYTZWN3KX5UQFGAWI4Q3AC
IGUSSYANPKGMX5YDQC7AI5ZWZLEQPIXA4KG3RZHNPMERL554HQWQC
7Y5HSDFKA5TPLS2TWTRFMQVX6UXUDHXU5MUMXQSDFAIY4THQ3BIQC
ED62QWGKBPORWVKDFOQRKJXEIWZVNGR3O4KWQBDSRNPT36AYOQYAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
SM6YRPYZS6LMDQA6X3VAOK2PGMUFKPD7JMWJISOQSMX2CBR4ISPAC
UEI5JAVCMN7Y2SACTEZPZSNFJWOJTC55G24Q6LKQCT4XNDH5ZQIAC
NVSFIV2ZKP44XHCSCXG6OZVGL67OIFINC34J2EMKTA4KULCERUEAC
void clua_register_metatable(lua_State *ls, const char *tn,
const luaL_reg *lr,
int (*gcfn)(lua_State *ls))
{
lua_stack_cleaner clean(ls);
luaL_newmetatable(ls, tn);
lua_pushstring(ls, "__index");
lua_pushvalue(ls, -2);
lua_settable(ls, -3);
if (gcfn)
{
lua_pushstring(ls, "__gc");
lua_pushcfunction(ls, gcfn);
lua_settable(ls, -3);
}
if (lr)
{
luaL_openlib(ls, NULL, lr, 0);
}
}
void clua_register_metatable(lua_State *ls, const char *tn,
const luaL_reg *lr,
int (*gcfn)(lua_State *ls))
{
lua_stack_cleaner clean(ls);
luaL_newmetatable(ls, tn);
lua_pushstring(ls, "__index");
lua_pushvalue(ls, -2);
lua_settable(ls, -3);
if (gcfn)
{
lua_pushstring(ls, "__gc");
lua_pushcfunction(ls, gcfn);
lua_settable(ls, -3);
}
if (lr)
{
luaL_openlib(ls, NULL, lr, 0);
}
}