Compound assignment fix

This commit is contained in:
Jindra Petřík
2025-08-31 09:33:46 +02:00
parent e0091cb8d1
commit a75b964ff6

View File

@@ -35,6 +35,7 @@ import com.jpexs.decompiler.graph.TranslateStack;
import com.jpexs.decompiler.graph.model.CompoundableBinaryOp;
import com.jpexs.decompiler.graph.model.DuplicateItem;
import com.jpexs.decompiler.graph.model.DuplicateSourceItem;
import com.jpexs.decompiler.graph.model.SetTemporaryItem;
import java.util.List;
import java.util.Objects;
@@ -105,6 +106,16 @@ public class SetPropertyIns extends InstructionDefinition implements SetTypeIns
result.setCompoundValue(binaryOp.getRightSide());
result.setCompoundOperator(binaryOp.getOperator());
if (propItem.object instanceof DuplicateItem) {
DuplicateItem d = (DuplicateItem) propItem.object;
if (!output.isEmpty() && output.get(output.size() - 1) instanceof SetTemporaryItem) {
SetTemporaryItem st = (SetTemporaryItem) output.get(output.size() - 1);
if (st.tempIndex == d.tempIndex) {
output.remove(output.size() - 1);
}
}
}
if (result instanceof SetPropertyAVM2Item) {
SetPropertyAVM2Item sp = (SetPropertyAVM2Item) result;
if (sp.object instanceof DuplicateSourceItem) {