Index: mojo/public/tools/bindings/generators/mojom_java_generator.py |
diff --git a/mojo/public/tools/bindings/generators/mojom_java_generator.py b/mojo/public/tools/bindings/generators/mojom_java_generator.py |
index 7364afc56ad725ff594c1180e68fc377d69071ce..ec897f750f2b97d4824cb6d1540355ae48b6f221 100644 |
--- a/mojo/public/tools/bindings/generators/mojom_java_generator.py |
+++ b/mojo/public/tools/bindings/generators/mojom_java_generator.py |
@@ -235,7 +235,12 @@ def ExpressionToText(context, token): |
return _TranslateNamedValue(token) |
# Add Long suffix to all number literals. |
if re.match('^[0-9]+$', token): |
- return token + 'L' |
+ number = int(token) |
+ # If the literal is too large to fit a signed long, convert it to the |
+ # equivalent signed long. |
+ if number >= 2 ** 63: |
+ number -= 2 ** 64 |
+ return '%dL' % number |
return token |
def IsPointerArrayKind(kind): |