[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