Swap fixes

This commit is contained in:
Jindra Petřík
2025-09-01 17:01:26 +02:00
parent 82d3cc2d2a
commit 68fdf1097d
6 changed files with 78 additions and 3 deletions
@@ -407,6 +407,42 @@ public class TranslateStack extends Stack<GraphTargetItem> {
}
public void allowSwap(List<GraphTargetItem> output) {
/*
if (!isEmpty()) {
return;
}
if (output.isEmpty()) {
return;
}
if (size() != 2) {
return;
}
if (!(output.get(output.size() - 1) instanceof SetTemporaryItem)) {
return;
}
if (!(peek() instanceof TemporaryItem)) {
return;
}
TemporaryItem ti = (TemporaryItem) peek();
SetTemporaryItem st = (SetTemporaryItem) output.get(output.size() - 1);
if (!"swap".equals(st.getSuffix())) {
return;
}
if (st.getTempIndex() != ti.getTempIndex()) {
return;
}
output.remove(output.size() - 1);
pop();
push(ti.value);
*/
if (!isEmpty()) {
return;
}
@@ -420,7 +456,7 @@ public class TranslateStack extends Stack<GraphTargetItem> {
if (!(output.get(output.size() - 2) instanceof PushItem)) {
return;
}
if (!(output.get(output.size() - 3) instanceof SetTemporaryItem)) {
return;
}
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.graph.CompilationException;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetDialect;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.GraphTargetVisitorInterface;
import com.jpexs.decompiler.graph.SimpleValue;
import com.jpexs.decompiler.graph.SourceGenerator;
import java.util.List;
@@ -145,4 +146,8 @@ public class DuplicateItem extends GraphTargetItem implements SimpleValue, HasTe
public int getTempIndex() {
return tempIndex;
}
@Override
public void visit(GraphTargetVisitorInterface visitor) {
}
}
@@ -23,6 +23,7 @@ import com.jpexs.decompiler.graph.CompilationException;
import com.jpexs.decompiler.graph.GraphSourceItem;
import com.jpexs.decompiler.graph.GraphTargetDialect;
import com.jpexs.decompiler.graph.GraphTargetItem;
import com.jpexs.decompiler.graph.GraphTargetVisitorInterface;
import com.jpexs.decompiler.graph.SimpleValue;
import com.jpexs.decompiler.graph.SourceGenerator;
import java.util.ArrayList;
@@ -136,4 +137,7 @@ public class TemporaryItem extends GraphTargetItem implements SimpleValue, HasTe
return tempIndex;
}
@Override
public void visit(GraphTargetVisitorInterface visitor) {
}
}