From 3f119d585c7c6aba520f02fdf0d9bc322fe5547b Mon Sep 17 00:00:00 2001 From: cryi Date: Tue, 9 Mar 2021 18:04:08 +0100 Subject: [PATCH 1/2] added type names for exposed metatables --- src/l52util.c | 6 +++++- src/lua/cURL/impl/cURL.lua | 17 +++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/l52util.c b/src/l52util.c index 9e312cf..6373687 100644 --- a/src/l52util.c +++ b/src/l52util.c @@ -68,6 +68,11 @@ int lutil_newmetatablep (lua_State *L, const void *p) { lua_newtable(L); /* create metatable */ lua_pushvalue(L, -1); /* duplicate metatable to set*/ + + lua_pushliteral (L, "__type"); + lua_pushstring(L, p); // push meta name + lua_settable (L, -3); // set meta name + lua_rawsetp(L, LUA_REGISTRYINDEX, p); return 1; @@ -122,7 +127,6 @@ int lutil_createmetap (lua_State *L, const void *p, const luaL_Reg *methods, int lua_pushliteral (L, "__index"); /* define metamethods */ lua_pushvalue (L, -2); lua_settable (L, -3); - return 1; } diff --git a/src/lua/cURL/impl/cURL.lua b/src/lua/cURL/impl/cURL.lua index 88eeeb1..f3e39f7 100644 --- a/src/lua/cURL/impl/cURL.lua +++ b/src/lua/cURL/impl/cURL.lua @@ -219,8 +219,9 @@ local function form_add(form, data) return form end -local function class(ctor) +local function class(ctor, type_name) local C = {} + C.__type = type_name or "LcURL Unknown" C.__index = function(self, k) local fn = C[k] @@ -254,7 +255,7 @@ end local function Load_cURLv2(cURL, curl) ------------------------------------------- -local Easy = class(curl.easy) do +local Easy = class(curl.easy, "LcURL Easy") do local perform = wrap_function("perform") local setopt_share = wrap_function("setopt_share") @@ -400,7 +401,7 @@ end ------------------------------------------- ------------------------------------------- -local Multi = class(curl.multi) do +local Multi = class(curl.multi, "LcURL Multi") do local perform = wrap_function("perform") local add_handle = wrap_function("add_handle") @@ -460,7 +461,7 @@ end ------------------------------------------- ------------------------------------------- -local Share = class(curl.share) do +local Share = class(curl.share, "LcURL Share") do Share.setopt_share = wrap_setopt_flags("share", { [ "COOKIE" ] = curl.LOCK_DATA_COOKIE; @@ -485,7 +486,7 @@ end local function Load_cURLv3(cURL, curl) ------------------------------------------- -local Form = class(curl.form) do +local Form = class(curl.form, "LcURL Form") do function Form:__init(opt) if opt then return self:add(opt) end @@ -505,7 +506,7 @@ end ------------------------------------------- ------------------------------------------- -local Easy = class(curl.easy) do +local Easy = class(curl.easy, "LcURL Easy") do function Easy:__init(opt) if opt then return self:setopt(opt) end @@ -595,7 +596,7 @@ end ------------------------------------------- ------------------------------------------- -local Multi = class(curl.multi) do +local Multi = class(curl.multi, "LcURL Multi") do local add_handle = wrap_function("add_handle") local remove_handle = wrap_function("remove_handle") @@ -717,7 +718,7 @@ end end ------------------------------------------- -setmetatable(cURL, {__index = curl}) +setmetatable(cURL, {__index = curl, __type = "LCURL"}) function cURL.form(...) return Form:new(...) end From 691dfb1a68548cccc7f093807a0993e31a5bcb46 Mon Sep 17 00:00:00 2001 From: cryi Date: Mon, 26 Apr 2021 21:58:30 +0200 Subject: [PATCH 2/2] remove __type from module --- src/lua/cURL/impl/cURL.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lua/cURL/impl/cURL.lua b/src/lua/cURL/impl/cURL.lua index f3e39f7..a7b141d 100644 --- a/src/lua/cURL/impl/cURL.lua +++ b/src/lua/cURL/impl/cURL.lua @@ -718,7 +718,7 @@ end end ------------------------------------------- -setmetatable(cURL, {__index = curl, __type = "LCURL"}) +setmetatable(cURL, {__index = curl}) function cURL.form(...) return Form:new(...) end