From 0c60259d964e6759d33e53ac04a71f7163c17a1c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Vavru=C5=A1a?= Date: Mon, 22 Jun 2015 02:27:33 +0200 Subject: [PATCH] daemon/bindings: no userdata for rplan/query --- daemon/bindings/kres.c | 58 +++++++++++++++--------------------------- daemon/bindings/kres.h | 2 -- 2 files changed, 20 insertions(+), 40 deletions(-) diff --git a/daemon/bindings/kres.c b/daemon/bindings/kres.c index f679461be..8d2befd1a 100644 --- a/daemon/bindings/kres.c +++ b/daemon/bindings/kres.c @@ -18,14 +18,6 @@ #include "daemon/bindings/kres.h" #include "daemon/bindings.h" -/** @internal Create userdata of given type. */ -#define UDATA_CREATE(L, type, val, meta) do { \ - type *udata = lua_newuserdata(L, sizeof(*udata)); \ - *udata = (val); \ - luaL_getmetatable(L, (meta)); \ - lua_setmetatable(L, -2); \ -} while (0) - #define WRAP_NUMBER(L, name, val) \ lua_pushnumber((L), (val)); \ lua_setfield((L), -2, (name)) @@ -230,81 +222,72 @@ static int pkt_meta_register(lua_State *L) static int query_qtype(lua_State *L) { - struct kr_query **qry = lua_touserdata(L, 1); - lua_pushnumber(L, (*qry)->stype); + struct kr_query *qry = lua_touserdata(L, 1); + lua_pushnumber(L, qry->stype); return 1; } static int query_qclass(lua_State *L) { - struct kr_query **qry = lua_touserdata(L, 1); - lua_pushnumber(L, (*qry)->sclass); + struct kr_query *qry = lua_touserdata(L, 1); + lua_pushnumber(L, qry->sclass); return 1; } static int query_qname(lua_State *L) { - struct kr_query **qry = lua_touserdata(L, 1); - lua_pushdname(L, (*qry)->sname); + struct kr_query *qry = lua_touserdata(L, 1); + lua_pushdname(L, qry->sname); return 1; } static int query_flag(lua_State *L) { - struct kr_query **qry = lua_touserdata(L, 1); + struct kr_query *qry = lua_touserdata(L, 1); if (lua_gettop(L) < 2 || !lua_isnumber(L, 2)) { return 0; } - (*qry)->flags |= lua_tointeger(L, 2); + qry->flags |= lua_tointeger(L, 2); return 0; } static int query_clear_flag(lua_State *L) { - struct kr_query **qry = lua_touserdata(L, 1); + struct kr_query *qry = lua_touserdata(L, 1); if (lua_gettop(L) < 2 || !lua_isnumber(L, 2)) { return 0; } - (*qry)->flags &= ~lua_tointeger(L, 2); + qry->flags &= ~lua_tointeger(L, 2); return 0; } static int query_has_flag(lua_State *L) { - struct kr_query **qry = lua_touserdata(L, 1); + struct kr_query *qry = lua_touserdata(L, 1); if (lua_gettop(L) < 2 || !lua_isnumber(L, 2)) { return 0; } - lua_pushboolean(L, (*qry)->flags & lua_tointeger(L, 2)); + lua_pushboolean(L, qry->flags & lua_tointeger(L, 2)); return 1; } -static int query_meta_register(lua_State *L) -{ - static const luaL_Reg wrap[] = { - { "qtype", query_qtype }, - { "qclass", query_qclass }, - { "qname", query_qname }, - { "flag", query_flag }, - { "clear_flag", query_clear_flag }, - { "has_flag", query_has_flag }, - { NULL, NULL } - }; - lua_register_meta (L, wrap, META_QUERY); - return 0; -} - static int query_current(lua_State *L) { struct kr_request *req = lua_touserdata(L, 1); - UDATA_CREATE(L, struct kr_query *, kr_rplan_current(&req->rplan), META_QUERY); + lua_pushlightuserdata(L, kr_rplan_current(&req->rplan)); return 1; } int lib_kres(lua_State *L) { static const luaL_Reg lib[] = { - { "query_current", query_current }, + { "query_current", query_current }, + { "query_qtype", query_qtype }, + { "query_qclass", query_qclass }, + { "query_qname", query_qname }, + { "query_flag", query_flag }, + { "query_clear_flag", query_clear_flag }, + { "query_has_flag", query_has_flag }, { NULL, NULL } }; /* Create module and register functions */ @@ -327,6 +310,5 @@ int lib_kres(lua_State *L) WRAP_LUT(L, "query", query_flag_names); /* Register metatables */ pkt_meta_register(L); - query_meta_register(L); return 1; } \ No newline at end of file diff --git a/daemon/bindings/kres.h b/daemon/bindings/kres.h index d9881e36e..d26920622 100644 --- a/daemon/bindings/kres.h +++ b/daemon/bindings/kres.h @@ -24,8 +24,6 @@ /* Metatable list */ #define META_PKT "kres.meta_pkt" -#define META_QUERY "kres.meta_query" -#define META_RPLAN "kres.meta_rplan" /** * Load libkres library. -- 2.47.3