summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-08-29 23:22:02 +0100
committerMichael Williamson <mike@zwobble.org>2026-08-29 23:22:02 +0100
commit39d0b5105f474dd044022d2bb243eee203a93bfd (patch)
tree140fb2fc10b1264c9465ae2569fb55f76c9b19b9 /src
parent9141e8d5a4f22aeaa1c2863c4f7743ce8c35e760 (diff)
Fix decoding of Int64 in java-transient-0
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java8
1 files changed, 7 insertions, 1 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 42a4a6a..c7c9f69 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
@@ -426,6 +426,12 @@ public class JavaTransient0Generator implements Generator {
.iterator();
for (var shiftBy : shiftBys) {
+ JavaExpression rawValue = generateInputStreamRead();
+
+ if (!type.equals(NativeTypes.INT_32)) {
+ rawValue = new JavaCast(this.javaGenerator.generateTypeRef(type), rawValue);
+ }
+
statements.add(new JavaExpressionStatement(new JavaBinaryOperation(
JavaBinaryOperator.ASSIGN,
new JavaRef(VALUE_NAME),
@@ -434,7 +440,7 @@ public class JavaTransient0Generator implements Generator {
new JavaRef(VALUE_NAME),
new JavaBinaryOperation(
JavaBinaryOperator.LEFT_SHIFT,
- generateInputStreamRead(),
+ rawValue,
new JavaIntegerLiteral(shiftBy)
)
)