From f325b04ee28da57409c5dede90b303d997ebeb75 Mon Sep 17 00:00:00 2001 From: Fayez Abu Alia Date: Thu, 11 Oct 2018 14:17:54 +0200 Subject: [PATCH] Bugs 111 und 114 gefixt. Unboxing wird aufgerufen wenn es noetig ist --- src/de/dhbwstuttgart/bytecode/BytecodeGenMethod.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/de/dhbwstuttgart/bytecode/BytecodeGenMethod.java b/src/de/dhbwstuttgart/bytecode/BytecodeGenMethod.java index c421ddc9..e35127ed 100644 --- a/src/de/dhbwstuttgart/bytecode/BytecodeGenMethod.java +++ b/src/de/dhbwstuttgart/bytecode/BytecodeGenMethod.java @@ -282,7 +282,6 @@ public class BytecodeGenMethod implements StatementVisitor { default: break; } - } private String getLargerType(String lexpType, String rexpType) { @@ -782,7 +781,7 @@ public class BytecodeGenMethod implements StatementVisitor { doUnboxing(getResolvedType(methodCall.getType())); } - if(methodRefl == null && !isReturnStmt) { + if(methodRefl == null/* && !isReturnStmt*/) { if(isBinaryExp) doUnboxing(getResolvedType(methodCall.getType())); } @@ -1081,7 +1080,11 @@ public class BytecodeGenMethod implements StatementVisitor { break; case "java/lang/Integer": // zweite Argument isLong - visitIntegerLiteral(((Double) value).intValue(), false); +// visitIntegerLiteral(((Double) value).intValue(), false); + if(value instanceof Double) + visitIntegerLiteral(((Double) value).intValue(), false); + if(value instanceof Integer) + visitIntegerLiteral(((Integer) value).intValue(), false); break; case "java/lang/Long": visitLongLiteral(((Double) value).longValue(), true);