mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-07-08 11:48:17 +00:00
Fixed: #2355 AS3 Simplify expressions feature colliding with some other features like hex values
This commit is contained in:
@@ -113,4 +113,8 @@ public class DoubleValueAVM2Item extends NumberValueAVM2Item {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getAsLong() {
|
||||
return (long)(double) value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -213,5 +213,9 @@ public class IntegerValueAVM2Item extends NumberValueAVM2Item implements Integer
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public long getAsLong() {
|
||||
return (long) value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,9 @@
|
||||
package com.jpexs.decompiler.flash.abc.avm2.model.operations;
|
||||
|
||||
import com.jpexs.decompiler.flash.abc.avm2.graph.AVM2GraphTargetDialect;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.DoubleValueAVM2Item;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.IntegerValueAVM2Item;
|
||||
import com.jpexs.decompiler.flash.ecma.EcmaScript;
|
||||
import com.jpexs.decompiler.flash.helpers.GraphTextWriter;
|
||||
import com.jpexs.decompiler.graph.GraphSourceItem;
|
||||
import com.jpexs.decompiler.graph.GraphTargetItem;
|
||||
@@ -49,10 +51,10 @@ public abstract class BitwiseBinaryOpAVM2Item extends BinaryOpItem implements Co
|
||||
|
||||
@Override
|
||||
protected void operandToString(GraphTargetItem operand, GraphTextWriter writer, LocalData localData) throws InterruptedException {
|
||||
if (operand instanceof IntegerValueAVM2Item) {
|
||||
Integer val = ((IntegerValueAVM2Item) operand).value;
|
||||
if ((operand instanceof IntegerValueAVM2Item) || (operand instanceof DoubleValueAVM2Item)) {
|
||||
long val = operand.getAsLong();
|
||||
if (val > 9) {
|
||||
String valHex = Integer.toHexString(val).toUpperCase();
|
||||
String valHex = Long.toHexString(val).toUpperCase();
|
||||
if (valHex.length() % 2 == 1) {
|
||||
valHex = "0" + valHex;
|
||||
}
|
||||
|
||||
@@ -317,4 +317,9 @@ public class DirectValueActionItem extends ActionItem implements SimpleValue {
|
||||
public String toString() {
|
||||
return "" + getResult();
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getAsLong() {
|
||||
return (long) (double) EcmaScript.toNumberAs2(value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,8 +49,9 @@ public abstract class BitwiseBinaryOpActionItem extends BinaryOpItem implements
|
||||
|
||||
@Override
|
||||
protected void operandToString(GraphTargetItem operand, GraphTextWriter writer, LocalData localData) throws InterruptedException {
|
||||
if ((operand instanceof DirectValueActionItem) && (((DirectValueActionItem) operand).value instanceof Long)) {
|
||||
long val = (long) (Long) ((DirectValueActionItem) operand).value;
|
||||
if ((operand instanceof DirectValueActionItem)
|
||||
&& ((((DirectValueActionItem) operand).value instanceof Long) || (((DirectValueActionItem) operand).value instanceof Double))) {
|
||||
long val = operand.getAsLong();
|
||||
if (val > 9) {
|
||||
String valHex = Long.toHexString(val).toUpperCase();
|
||||
if (valHex.length() % 2 == 1) {
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.jpexs.decompiler.graph;
|
||||
|
||||
import com.jpexs.decompiler.flash.SourceGeneratorLocalData;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.ConvertAVM2Item;
|
||||
import com.jpexs.decompiler.flash.abc.avm2.model.DoubleValueAVM2Item;
|
||||
import com.jpexs.decompiler.flash.action.model.DirectValueActionItem;
|
||||
import com.jpexs.decompiler.flash.configuration.Configuration;
|
||||
import com.jpexs.decompiler.flash.ecma.EcmaScript;
|
||||
@@ -1065,11 +1066,7 @@ public abstract class GraphTargetItem implements Serializable, Cloneable {
|
||||
* @return This as long
|
||||
*/
|
||||
public long getAsLong() {
|
||||
if (this instanceof DirectValueActionItem) {
|
||||
DirectValueActionItem dvai = (DirectValueActionItem) this;
|
||||
return (long) (double) EcmaScript.toNumberAs2(dvai.value);
|
||||
}
|
||||
|
||||
//override as needed
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user