mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-05-31 19:54:37 +00:00
Fixed #1920 Slower decompilation (returnType method optimization)
This commit is contained in:
@@ -95,28 +95,28 @@ public class AddAVM2Item extends BinaryOpItem implements CompoundableBinaryOp {
|
||||
|
||||
@Override
|
||||
public GraphTargetItem returnType() {
|
||||
if (leftSide.returnType().equals(TypeItem.STRING) || rightSide.returnType().equals(TypeItem.STRING)) {
|
||||
GraphTargetItem leftType = leftSide.returnType();
|
||||
GraphTargetItem rightType = rightSide.returnType();
|
||||
if (leftType.equals(TypeItem.STRING) || rightType.equals(TypeItem.STRING)) {
|
||||
return TypeItem.STRING;
|
||||
}
|
||||
if (leftSide.returnType().equals(TypeItem.INT) && rightSide.returnType().equals(TypeItem.INT)) {
|
||||
if (leftType.equals(TypeItem.INT) && rightType.equals(TypeItem.INT)) {
|
||||
return TypeItem.INT;
|
||||
}
|
||||
|
||||
if ((leftSide.returnType().equals(TypeItem.INT) && rightSide.returnType().equals(TypeItem.UINT))||
|
||||
(leftSide.returnType().equals(TypeItem.UINT) && rightSide.returnType().equals(TypeItem.INT))
|
||||
if ((leftType.equals(TypeItem.INT) && rightType.equals(TypeItem.UINT))||
|
||||
(leftType.equals(TypeItem.UINT) && rightType.equals(TypeItem.INT))
|
||||
) {
|
||||
return TypeItem.INT;
|
||||
}
|
||||
|
||||
if (leftSide.returnType().equals(TypeItem.UINT) && rightSide.returnType().equals(TypeItem.UINT)) {
|
||||
if (leftType.equals(TypeItem.UINT) && rightType.equals(TypeItem.UINT)) {
|
||||
return TypeItem.UINT;
|
||||
}
|
||||
|
||||
if (leftSide.returnType().equals(TypeItem.NUMBER) || rightSide.returnType().equals(TypeItem.NUMBER)) {
|
||||
if (leftType.equals(TypeItem.NUMBER) || rightType.equals(TypeItem.NUMBER)) {
|
||||
return TypeItem.NUMBER;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
return TypeItem.NUMBER;
|
||||
}
|
||||
|
||||
|
||||
@@ -77,13 +77,15 @@ public class MultiplyAVM2Item extends BinaryOpItem implements CompoundableBinary
|
||||
|
||||
@Override
|
||||
public GraphTargetItem returnType() {
|
||||
if (leftSide.returnType().equals(TypeItem.INT) && rightSide.returnType().equals(TypeItem.INT)) {
|
||||
GraphTargetItem leftType = leftSide.returnType();
|
||||
GraphTargetItem rightType = rightSide.returnType();
|
||||
if (leftType.equals(TypeItem.INT) && rightType.equals(TypeItem.INT)) {
|
||||
return TypeItem.INT;
|
||||
}
|
||||
if (leftSide.returnType().equals(TypeItem.UINT) && rightSide.returnType().equals(TypeItem.UINT)) {
|
||||
if (leftType.equals(TypeItem.UINT) && rightType.equals(TypeItem.UINT)) {
|
||||
return TypeItem.UINT;
|
||||
}
|
||||
if (leftSide.returnType().equals(TypeItem.NUMBER) || rightSide.returnType().equals(TypeItem.NUMBER)) {
|
||||
if (leftType.equals(TypeItem.NUMBER) || rightType.equals(TypeItem.NUMBER)) {
|
||||
return TypeItem.NUMBER;
|
||||
}
|
||||
|
||||
|
||||
@@ -86,21 +86,23 @@ public class SubtractAVM2Item extends BinaryOpItem implements CompoundableBinary
|
||||
|
||||
@Override
|
||||
public GraphTargetItem returnType() {
|
||||
if (leftSide.returnType().equals(TypeItem.INT) && rightSide.returnType().equals(TypeItem.INT)) {
|
||||
GraphTargetItem leftType = leftSide.returnType();
|
||||
GraphTargetItem rightType = rightSide.returnType();
|
||||
|
||||
if (leftType.equals(TypeItem.INT) && rightType.equals(TypeItem.INT)) {
|
||||
return TypeItem.INT;
|
||||
}
|
||||
|
||||
if ((leftSide.returnType().equals(TypeItem.INT) && rightSide.returnType().equals(TypeItem.UINT))||
|
||||
(leftSide.returnType().equals(TypeItem.UINT) && rightSide.returnType().equals(TypeItem.INT))
|
||||
) {
|
||||
if ((leftType.equals(TypeItem.INT) && rightType.equals(TypeItem.UINT))||
|
||||
(leftType.equals(TypeItem.UINT) && rightType.equals(TypeItem.INT))) {
|
||||
return TypeItem.INT;
|
||||
}
|
||||
|
||||
if (leftSide.returnType().equals(TypeItem.UINT) && rightSide.returnType().equals(TypeItem.UINT)) {
|
||||
if (leftType.equals(TypeItem.UINT) && rightType.equals(TypeItem.UINT)) {
|
||||
return TypeItem.INT;
|
||||
}
|
||||
|
||||
if (leftSide.returnType().equals(TypeItem.NUMBER) || rightSide.returnType().equals(TypeItem.NUMBER)) {
|
||||
if (leftType.equals(TypeItem.NUMBER) || rightType.equals(TypeItem.NUMBER)) {
|
||||
return TypeItem.NUMBER;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user