Skip to content

Commit 0114b28

Browse files
committed
Fix wrong bytecode compilations for a few methods
Signed-off-by: TheSilkMiner <thesilkminer@outlook.com>
1 parent 06b4b0c commit 0114b28

1 file changed

Lines changed: 10 additions & 6 deletions

File tree

JavaBytecodeCompiler/src/main/java/org/openzen/zenscript/javabytecode/compiler/JavaMethodBytecodeCompiler.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,7 @@ public Void builtinStaticMethod(BuiltinMethodSymbol method, TypeID returnType, C
412412
arguments[0].accept(expressionVisitor);
413413
javaWriter.invokeStatic(SHORT_TO_STRING);
414414
arguments[1].accept(expressionVisitor);
415-
javaWriter.invokeStatic(STRING_CONCAT);
415+
javaWriter.invokeVirtual(STRING_CONCAT);
416416
return null;
417417
case USHORT_ADD_STRING:
418418
case USHORT_CAT_STRING:
@@ -740,28 +740,29 @@ public Void builtinStaticMethod(BuiltinMethodSymbol method, TypeID returnType, C
740740
break;
741741
case USHORT_TO_LONG:
742742
case USHORT_TO_ULONG:
743-
javaWriter.constant(0xFFFFL);
743+
javaWriter.constant(0xFFFF);
744744
javaWriter.iAnd();
745+
javaWriter.i2l();
745746
break;
746747
case USHORT_TO_FLOAT:
747-
javaWriter.constant(0xFFFFL);
748+
javaWriter.constant(0xFFFF);
748749
javaWriter.iAnd();
749750
javaWriter.i2f();
750751
break;
751752
case USHORT_TO_DOUBLE:
752-
javaWriter.constant(0xFFFFL);
753+
javaWriter.constant(0xFFFF);
753754
javaWriter.iAnd();
754755
javaWriter.i2d();
755756
break;
756757
case USHORT_TO_CHAR:
757-
javaWriter.constant(0xFFFFL);
758+
javaWriter.constant(0xFFFF);
758759
javaWriter.iAnd();
759760
break;
760761
case USHORT_TO_STRING:
761762
if (arguments[0].type.isOptional()) {
762763
javaWriter.invokeStatic(OBJECTS_TOSTRING);
763764
} else {
764-
javaWriter.constant(0xFFFFL);
765+
javaWriter.constant(0xFFFF);
765766
javaWriter.iAnd();
766767
javaWriter.invokeStatic(INTEGER_TO_STRING);
767768
}
@@ -1177,6 +1178,9 @@ public Void builtinStaticMethod(BuiltinMethodSymbol method, TypeID returnType, C
11771178
case DOUBLE_MOD_DOUBLE:
11781179
javaWriter.dRem();
11791180
break;
1181+
case INT_ADD_USIZE:
1182+
javaWriter.iAdd();
1183+
break;
11801184
case STRING_ADD_STRING:
11811185
javaWriter.invokeVirtual(STRING_CONCAT);
11821186
break;

0 commit comments

Comments
 (0)