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); diff --git a/src/de/dhbwstuttgart/bytecode/signature/Signature.java b/src/de/dhbwstuttgart/bytecode/signature/Signature.java index 6f387f17..39668648 100644 --- a/src/de/dhbwstuttgart/bytecode/signature/Signature.java +++ b/src/de/dhbwstuttgart/bytecode/signature/Signature.java @@ -432,6 +432,9 @@ public class Signature { while(subAndSuperTph.containsKey(superTph)) { superTph = subAndSuperTph.get(superTph); + if(tphsInRel.containsValue(superTph)) { + break; + } tphsInRel.put(tphsInRel.size(), superTph); numOfVisitedPairs++; }