diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-08-01 11:37:50 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-08-01 11:37:50 +0100 |
| commit | b9f4f31a1ebb8197bef31e44d876d6fc82cdaf78 (patch) | |
| tree | 0fdb46edf09a5160758a22003373f89bbbeb42cc /src | |
| parent | 21737feb18d88a2465ab0e07f2fb83cff702da4b (diff) | |
Check shared value ID is in range
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java index b12f8d5..92d36e3 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java @@ -1105,6 +1105,10 @@ public class JavaTransient0Generator implements Generator { return Lists.concat(List.of( generateDecode(id, NativeTypes.INT_64), List.of( + generateAssertLessThanIntMax( + id, + "Shared value IDs greater than Integer.MAX_VALUE are not supported" + ), new JavaLocalVariableDeclaration( Optional.of(this.javaGenerator.generateTypeRef(type)), target, @@ -1129,6 +1133,10 @@ public class JavaTransient0Generator implements Generator { new JavaMethodCall( new JavaRef(SHARED_VALUES_NAME), JavaIdentifier.of("get"), + // We've checked above that the id is less than + // Integer.MAX_VALUE, so casting to an int is safe. + // (This doesn't check for negatives, but get() fails for + // negative values anyway.) List.of(new JavaCast(JavaTypeRef.INT, new JavaRef(id))) ) ) |
