X-Git-Url: https://git.archive.openwrt.org/?a=blobdiff_plain;f=libs%2Flmo%2Fsrc%2Flmo_lualib.c;h=676f788d28ed52fa4dbaac1a0912563b7472c638;hb=4dd0a793b6c1922bf13ad4761401122f6f65dbc3;hp=8d869aa49cb42260616ed9cb3d03647c3f48ca88;hpb=7ac3bac56921c889d29636b0e957324553457e88;p=project%2Fluci.git diff --git a/libs/lmo/src/lmo_lualib.c b/libs/lmo/src/lmo_lualib.c index 8d869aa49..676f788d2 100644 --- a/libs/lmo/src/lmo_lualib.c +++ b/libs/lmo/src/lmo_lualib.c @@ -49,7 +49,7 @@ static int lmo_L_open(lua_State *L) { static int lmo_L_hash(lua_State *L) { const char *data = luaL_checkstring(L, 1); uint32_t hash = sfh_hash(data, strlen(data)); - lua_pushnumber(L, hash); + lua_pushinteger(L, (lua_Integer)hash); return 1; } @@ -73,7 +73,7 @@ static int _lmo_lookup(lua_State *L, lmo_archive_t *ar, uint32_t hash) { static int lmo_L_get(lua_State *L) { lmo_archive_t **ar = luaL_checkudata(L, 1, LMO_ARCHIVE_META); - uint32_t hash = (uint32_t) luaL_checknumber(L, 2); + uint32_t hash = (uint32_t) luaL_checkinteger(L, 2); return _lmo_lookup(L, *ar, hash); } @@ -140,17 +140,13 @@ static const luaL_reg R[] = { }; LUALIB_API int luaopen_lmo(lua_State *L) { - luaL_newmetatable(L, LMO_LUALIB_META); - luaL_register(L, NULL, R); - lua_pushvalue(L, -1); - lua_setfield(L, -2, "__index"); - lua_setglobal(L, LMO_LUALIB_META); - luaL_newmetatable(L, LMO_ARCHIVE_META); luaL_register(L, NULL, M); lua_pushvalue(L, -1); lua_setfield(L, -2, "__index"); lua_setglobal(L, LMO_ARCHIVE_META); + luaL_register(L, LMO_LUALIB_META, R); + return 1; }