From 7f96376ffdd63397a4265975ec4018c4465094f9 Mon Sep 17 00:00:00 2001 From: ame Date: Tue, 30 Jun 2026 04:30:10 -0500 Subject: table.contains and some check saftey --- src/table.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'src/table.c') diff --git a/src/table.c b/src/table.c index f5bdd5d..e2130dc 100644 --- a/src/table.c +++ b/src/table.c @@ -3,6 +3,23 @@ #include #include +int l_contains(lua_State* L){ + luaI_assert2(L, lua_gettop(L) >= 2); + luaL_checktype(L, 1, LUA_TTABLE); + + lua_pushnil(L); + for(;lua_next(L, 1);){ + if(lua_rawequal(L, -1, 2)){ + lua_pushvalue(L, -2); + return 1; + } + lua_pop(L, 1); + } + + lua_pushnil(L); + return 1; +} + void value_clone_req(lua_State* L){ int idx = lua_gettop(L); @@ -32,7 +49,7 @@ void value_clone_req(lua_State* L){ } int l_dup(lua_State* L){ - if(lua_gettop(L) != 1) return 0; + luaI_assert2(L, lua_gettop(L) == 1); value_clone_req(L); lua_pushvalue(L, 2); -- cgit v1.2.3