[OpenWrt-Devel] [PATCH v2 3/3] lua: restore return value of require('uci') to module table.
Yousong Zhou
yszhou4tech at gmail.com
Wed Mar 18 00:44:45 EDT 2015
Before commit "b121dd lua: add lua 5.2 compatibility changes", the
module table was filled by luaL_register() which would leave the table
at the top of the stack. But in current code the module table will be
popped by lua_setglobal() causing the return value defaulting to boolean
value true.
Also fix the return value of luaopen_uci() to 1 to indicate the number
of return value on stack.
Signed-off-by: Yousong Zhou <yszhou4tech at gmail.com>
---
lua/uci.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lua/uci.c b/lua/uci.c
index 8ace746..6ba7da0 100644
--- a/lua/uci.c
+++ b/lua/uci.c
@@ -994,8 +994,9 @@ luaopen_uci(lua_State *L)
/* create module */
lua_newtable(L);
+ lua_pushvalue(L, -1);
luaL_setfuncs(L, uci, 0);
lua_setglobal(L, MODNAME);
- return 0;
+ return 1;
}
--
1.7.10.4
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list