commit 9be89a1864a4a8c6505e3f1c3457831893b66d27
parent b9f371a3c2e6da297d7d6de581519c92d4e38e2f
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Fri, 29 Oct 2010 10:51:57 -0200
'luaL_checkversion' also checks convertions (number to integer types)
Diffstat:
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/lauxlib.c b/lauxlib.c
@@ -1,5 +1,5 @@
/*
-** $Id: lauxlib.c,v 1.222 2010/10/25 19:01:37 roberto Exp roberto $
+** $Id: lauxlib.c,v 1.223 2010/10/25 20:31:11 roberto Exp roberto $
** Auxiliary functions for building Lua libraries
** See Copyright Notice in lua.h
*/
@@ -876,5 +876,12 @@ LUALIB_API void luaL_checkversion_ (lua_State *L, lua_Number ver) {
else if (*v != ver)
luaL_error(L, "version mismatch: app. needs %d, Lua core provides %f",
ver, *v);
+ /* check conversions number -> integer types */
+ lua_pushnumber(L, -(lua_Number)0x1234);
+ if (lua_tointeger(L, -1) != -0x1234 ||
+ lua_tounsigned(L, -1) != (lua_Unsigned)-0x1234)
+ luaL_error(L, "bad conversion number->int;"
+ " must recompile Lua with proper settings");
+ lua_pop(L, 1);
}