diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2012-11-20 13:39:38 +0000 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2012-11-20 13:45:34 +0000 |
commit | 74105fdab11385c85d634f5d3ffe3acd165406a4 (patch) | |
tree | 76a3147ecb2f9463e3e4d3de8e06e2b0d4777b6a | |
parent | 3454cfb73c74b4fd3fba9d834c13685b166d9d3f (diff) | |
download | libguestfs-74105fdab11385c85d634f5d3ffe3acd165406a4.tar.gz libguestfs-74105fdab11385c85d634f5d3ffe3acd165406a4.tar.xz libguestfs-74105fdab11385c85d634f5d3ffe3acd165406a4.zip |
lua: Allow regular int to be passed as a 64 bit integer.
-rw-r--r-- | generator/lua.ml | 17 |
1 files 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 |