From 74105fdab11385c85d634f5d3ffe3acd165406a4 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 20 Nov 2012 13:39:38 +0000 Subject: lua: Allow regular int to be passed as a 64 bit integer. --- generator/lua.ml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/generator/lua.ml b/generator/lua.ml index 603b396c..7e5779f6 100644 --- a/generator/lua.ml +++ b/generator/lua.ml @@ -645,10 +645,19 @@ get_int64 (lua_State *L, int index) int64_t r; const char *s; - s = luaL_checkstring (L, index); - if (sscanf (s, \"%%\" SCNi64, &r) != 1) - return luaL_error (L, \"int64 parameter expected\"); - return r; + switch (lua_type (L, index)) { + case LUA_TSTRING: + s = luaL_checkstring (L, index); + if (sscanf (s, \"%%\" SCNi64, &r) != 1) + return luaL_error (L, \"int64 parameter expected\"); + return r; + + case LUA_TNUMBER: + return luaL_checkint (L, index); + + default: + return luaL_error (L, \"expecting 64 bit integer\"); + } } static void -- cgit