summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2012-11-20 13:39:38 +0000
committerRichard W.M. Jones <rjones@redhat.com>2012-11-20 13:45:34 +0000
commit74105fdab11385c85d634f5d3ffe3acd165406a4 (patch)
tree76a3147ecb2f9463e3e4d3de8e06e2b0d4777b6a
parent3454cfb73c74b4fd3fba9d834c13685b166d9d3f (diff)
downloadlibguestfs-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.ml17
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