If we don't add a "L" at the end of a number, its type will be
int but not long.
This bug is found when compiling JAVA binding with the following error:
./com/redhat/et/libguestfs/GuestFS.java:14731: error: integer number too large:
2147483648
_optargs_bitmask |= 2147483648;
^
Signed-off-by: Wanlong Gao <gaowanlong(a)cn.fujitsu.com>
---
generator/java.ml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/generator/java.ml b/generator/java.ml
index 4f549dc..5cf8c3a 100644
--- a/generator/java.ml
+++ b/generator/java.ml
@@ -136,7 +136,7 @@ public class GuestFS {
pr "\n";
pr " /* Unpack optional args. */\n";
pr " Object _optobj;\n";
- pr " long _optargs_bitmask = 0;\n";
+ pr " long _optargs_bitmask = 0L;\n";
iteri (
fun i argt ->
let t, boxed_t, convert, n, default =
@@ -152,7 +152,7 @@ public class GuestFS {
pr " _optobj = optargs.get (\"%s\");\n" n;
pr " if (_optobj != null) {\n";
pr " %s = ((%s) _optobj)%s;\n" n boxed_t convert;
- pr " _optargs_bitmask |= %Ld;\n"
+ pr " _optargs_bitmask |= %LdL;\n"
(Int64.shift_left Int64.one i);
pr " }\n";
) optargs
--
1.7.12