mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-09-26 05:00:49 +00:00
Issue #418 and/or detection fix
This commit is contained in:
@@ -59,6 +59,11 @@ public class CoerceAVM2Item extends AVM2Item {
|
||||
return value.getNotCoerced();
|
||||
}
|
||||
|
||||
@Override
|
||||
public GraphTargetItem getNotCoercedNoDup() {
|
||||
return value.getNotCoercedNoDup();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCompileTime(Set<GraphTargetItem> dependencies) {
|
||||
if (dependencies.contains(value)) {
|
||||
|
||||
@@ -43,6 +43,11 @@ public class ConvertAVM2Item extends AVM2Item {
|
||||
return value.getNotCoerced();
|
||||
}
|
||||
|
||||
@Override
|
||||
public GraphTargetItem getNotCoercedNoDup() {
|
||||
return value.getNotCoercedNoDup();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getResult() {
|
||||
switch (type.toString()) {
|
||||
|
||||
@@ -73,4 +73,9 @@ public class TemporaryRegister extends ActionItem {
|
||||
public GraphTargetItem getNotCoerced() {
|
||||
return value.getNotCoerced();
|
||||
}
|
||||
|
||||
@Override
|
||||
public GraphTargetItem getNotCoercedNoDup() {
|
||||
return value.getNotCoercedNoDup();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2004,12 +2004,12 @@ public class Graph {
|
||||
if (onTrue.size() == 2) {
|
||||
GraphTargetItem rightSide = ((PushItem) onTrue.get(1)).value;
|
||||
GraphTargetItem prevExpr = stack.pop();
|
||||
GraphTargetItem leftSide = expr;
|
||||
GraphTargetItem leftSide = expr.getNotCoercedNoDup();
|
||||
|
||||
if (leftSide instanceof DuplicateItem) {
|
||||
isIf = false;
|
||||
stack.push(new OrItem(null, prevExpr, rightSide));
|
||||
} else if (leftSide.invert(null) instanceof DuplicateItem) {
|
||||
} else if (leftSide.invert(null).getNotCoercedNoDup() instanceof DuplicateItem) {
|
||||
isIf = false;
|
||||
stack.push(new AndItem(null, prevExpr, rightSide));
|
||||
} else if (prevExpr instanceof FalseItem) {
|
||||
|
||||
@@ -250,6 +250,10 @@ public abstract class GraphTargetItem implements Serializable, Cloneable {
|
||||
return this;
|
||||
}
|
||||
|
||||
public GraphTargetItem getNotCoercedNoDup() {
|
||||
return getNotCoerced();
|
||||
}
|
||||
|
||||
public GraphTargetItem getThroughRegister() {
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -57,6 +57,11 @@ public class DuplicateItem extends GraphTargetItem implements SimpleValue {
|
||||
return value.getNotCoerced();
|
||||
}
|
||||
|
||||
@Override
|
||||
public GraphTargetItem getNotCoercedNoDup() {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GraphTargetItem getThroughRegister() {
|
||||
return value.getThroughRegister();
|
||||
|
||||
@@ -62,4 +62,9 @@ public class PushItem extends GraphTargetItem {
|
||||
public GraphTargetItem getThroughRegister() {
|
||||
return value.getThroughRegister();
|
||||
}
|
||||
|
||||
@Override
|
||||
public GraphTargetItem getNotCoercedNoDup() {
|
||||
return value.getNotCoercedNoDup();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user