Fixed: AS3 direct editation - slot/const default values

This commit is contained in:
Jindra Petřík
2021-03-04 20:22:54 +01:00
parent bcde71e7ec
commit ad89404a5b
3 changed files with 16 additions and 13 deletions

View File

@@ -2057,9 +2057,9 @@ public class AVM2SourceGenerator implements SourceGenerator {
if (val instanceof BooleanAVM2Item) {
BooleanAVM2Item bi = (BooleanAVM2Item) val;
if (bi.value) {
return new ValueKind(0, ValueKind.CONSTANT_True);
return new ValueKind(ValueKind.CONSTANT_True, ValueKind.CONSTANT_True);
} else {
return new ValueKind(0, ValueKind.CONSTANT_False);
return new ValueKind(ValueKind.CONSTANT_False, ValueKind.CONSTANT_False);
}
}
@@ -2092,10 +2092,10 @@ public class AVM2SourceGenerator implements SourceGenerator {
return new ValueKind(abcIndex.getSelectedAbc().constants.getDoubleId(Double.NaN, true), ValueKind.CONSTANT_Double);
}
if (val instanceof NullAVM2Item) {
return new ValueKind(0, ValueKind.CONSTANT_Null);
return new ValueKind(ValueKind.CONSTANT_Null, ValueKind.CONSTANT_Null);
}
if (val instanceof UndefinedAVM2Item) {
return new ValueKind(0, ValueKind.CONSTANT_Undefined);
return new ValueKind(ValueKind.CONSTANT_Undefined, ValueKind.CONSTANT_Undefined);
}
return null;
}
@@ -2386,6 +2386,7 @@ public class AVM2SourceGenerator implements SourceGenerator {
ValueKind vk = getValueKind(namespace, type, val);
if (vk == null) {
tsc.value_index = ValueKind.CONSTANT_Undefined;
tsc.value_kind = ValueKind.CONSTANT_Undefined;
} else {
tsc.value_kind = vk.value_kind;

View File

@@ -12,7 +12,8 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library.
* License along with this library.
*/
package com.jpexs.decompiler.flash.abc.methodinfo_parser;
import com.jpexs.decompiler.flash.abc.ABC;
@@ -70,16 +71,16 @@ public class MethodInfoParser {
value = new ValueKind(abc.constants.getStringId((String) symbValue.value, true), ValueKind.CONSTANT_Utf8);
break;
case ParsedSymbol.TYPE_TRUE:
case ParsedSymbol.TYPE_TRUE:
value = new ValueKind(ValueKind.CONSTANT_True, ValueKind.CONSTANT_True);
break;
case ParsedSymbol.TYPE_FALSE:
case ParsedSymbol.TYPE_FALSE:
value = new ValueKind(ValueKind.CONSTANT_False, ValueKind.CONSTANT_False);
break;
case ParsedSymbol.TYPE_NULL:
case ParsedSymbol.TYPE_NULL:
value = new ValueKind(ValueKind.CONSTANT_Null, ValueKind.CONSTANT_Null);
break;
case ParsedSymbol.TYPE_UNDEFINED:
case ParsedSymbol.TYPE_UNDEFINED:
value = new ValueKind(ValueKind.CONSTANT_Undefined, ValueKind.CONSTANT_Undefined);
break;
case ParsedSymbol.TYPE_NAMESPACE:
if (nstype.equals("9:")) {
@@ -208,16 +209,16 @@ public class MethodInfoParser {
optionalValues.add(new ValueKind(abc.constants.getStringId((String) symbValue.value, true), ValueKind.CONSTANT_Utf8));
break;
case ParsedSymbol.TYPE_TRUE:
case ParsedSymbol.TYPE_TRUE:
optionalValues.add(new ValueKind(ValueKind.CONSTANT_True, ValueKind.CONSTANT_True));
break;
case ParsedSymbol.TYPE_FALSE:
case ParsedSymbol.TYPE_FALSE:
optionalValues.add(new ValueKind(ValueKind.CONSTANT_False, ValueKind.CONSTANT_False));
break;
case ParsedSymbol.TYPE_NULL:
case ParsedSymbol.TYPE_NULL:
optionalValues.add(new ValueKind(ValueKind.CONSTANT_Null, ValueKind.CONSTANT_Null));
break;
case ParsedSymbol.TYPE_UNDEFINED:
case ParsedSymbol.TYPE_UNDEFINED:
optionalValues.add(new ValueKind(ValueKind.CONSTANT_Undefined, ValueKind.CONSTANT_Undefined));
break;
case ParsedSymbol.TYPE_NAMESPACE:
if (nstype.equals("9:")) {