[Tarantool-patches] [PATCH 1.10 9/9] module api: luaL_cdata_iscallable
Timur Safin
tsafin at tarantool.org
Fri Sep 25 00:00:41 MSK 2020
In addition to `luaL_iscallable` we need `luaL_cdata_iscallable`
because code which was calling it directly had to be copied to
merger side for 1.10, as there was missing support dislike 2.*
Backported to 1.10
Part of #5273
---
extra/exports | 1 +
src/lua/utils.c | 2 +-
src/lua/utils.h | 7 +++++++
3 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/extra/exports b/extra/exports
index a593375c0..e8fddd43c 100644
--- a/extra/exports
+++ b/extra/exports
@@ -119,6 +119,7 @@ coio_getaddrinfo
luaL_pushcdata
luaL_iscdata
luaL_iscallable
+luaL_cdata_iscallable
luaL_checkcdata
luaL_checkconstchar
luaL_checkibuf
diff --git a/src/lua/utils.c b/src/lua/utils.c
index 8aa2deb13..bfc9f2852 100644
--- a/src/lua/utils.c
+++ b/src/lua/utils.c
@@ -1058,7 +1058,7 @@ luaL_checkconstchar(struct lua_State *L, int idx, const char **res,
}
/* Based on ffi_meta___call() from luajit/src/lib_ffi.c. */
-static int
+int
luaL_cdata_iscallable(lua_State *L, int idx)
{
/* Calculate absolute value in the stack. */
diff --git a/src/lua/utils.h b/src/lua/utils.h
index dca23c299..136ce64f9 100644
--- a/src/lua/utils.h
+++ b/src/lua/utils.h
@@ -517,6 +517,13 @@ luaT_tolstring(lua_State *L, int idx, size_t *ssize);
LUA_API int
luaL_iscallable(lua_State *L, int idx);
+/**
+ * Check whether a Lua object is a cdata metatype with a __call field.
+ *
+ */
+LUA_API int
+luaL_cdata_iscallable(lua_State *L, int idx);
+
/**
* @brief Creates a new Lua coroutine in a protected frame. If
* <lua_newthread> call underneath succeeds, the created Lua state
--
2.20.1
More information about the Tarantool-patches
mailing list