Fixed AS3 p-code - IGNORE_REST method flag incorrectly shown as EXPLICIT

Changed AS3 p-code - EXPLICIT method flag renamed to NATIVE
This commit is contained in:
Jindra Petřík
2023-03-11 09:55:52 +01:00
parent 4def1729e4
commit 859049b2d4
13 changed files with 3169 additions and 3170 deletions

View File

@@ -888,8 +888,8 @@ public class ASM3Parser {
if (symb.type == ParsedSymbol.TYPE_KEYWORD_FLAG) {
symb = lexer.lex();
switch (symb.type) {
case ParsedSymbol.TYPE_KEYWORD_EXPLICIT:
info.setFlagExplicit();
case ParsedSymbol.TYPE_KEYWORD_NATIVE:
info.setFlagNative();
break;
case ParsedSymbol.TYPE_KEYWORD_HAS_OPTIONAL:
info.setFlagHas_optional();

View File

@@ -116,7 +116,7 @@ public class ParsedSymbol {
public static final int TYPE_KEYWORD_FLAG = 45;
public static final int TYPE_KEYWORD_EXPLICIT = 46;
public static final int TYPE_KEYWORD_NATIVE = 46;
public static final int TYPE_KEYWORD_HAS_OPTIONAL = 47;

View File

@@ -60,7 +60,7 @@ public class MethodInfo {
public int ret_type;
public int name_index; //0=no name
// 1=need_arguments, 2=need_activation, 4=need_rest 8=has_optional 16=ignore_rest, 32=explicit, 64=setsdxns, 128=has_paramnames
// 1=need_arguments, 2=need_activation, 4=need_rest 8=has_optional 16=ignore_rest, 32=native, 64=setsdxns, 128=has_paramnames
public static int FLAG_NEED_ARGUMENTS = 1;
@@ -72,7 +72,7 @@ public class MethodInfo {
public static int FLAG_IGNORE_REST = 16;
public static int FLAG_EXPLICIT = 32;
public static int FLAG_NATIVE = 32;
public static int FLAG_SETSDXNS = 64;
@@ -88,8 +88,8 @@ public class MethodInfo {
flags |= FLAG_IGNORE_REST;
}
public void setFlagExplicit() {
flags |= FLAG_EXPLICIT;
public void setFlagNative() {
flags |= FLAG_NATIVE;
}
public void setFlagNeed_Arguments() {
@@ -206,8 +206,8 @@ public class MethodInfo {
return (flags & FLAG_IGNORE_REST) == FLAG_IGNORE_REST;
}
public boolean flagExplicit() {
return (flags & FLAG_EXPLICIT) == FLAG_EXPLICIT;
public boolean flagNative() {
return (flags & FLAG_NATIVE) == FLAG_NATIVE;
}
public boolean flagSetsdxns() {
@@ -404,9 +404,9 @@ public class MethodInfo {
writer.appendNoHilight("name ");
writer.hilightSpecial(name_index == 0 ? "null" : "\"" + Helper.escapeActionScriptString(getName(constants)) + "\"", HighlightSpecialType.METHOD_NAME);
writer.newLine();
if (flagExplicit()) {
if (flagNative()) {
writer.appendNoHilight("flag ");
writer.hilightSpecial("EXPLICIT", HighlightSpecialType.FLAG_EXPLICIT);
writer.hilightSpecial("NATIVE", HighlightSpecialType.FLAG_NATIVE);
writer.newLine();
}
if (flagHas_optional()) {
@@ -421,7 +421,7 @@ public class MethodInfo {
}
if (flagIgnore_rest()) {
writer.appendNoHilight("flag ");
writer.hilightSpecial("EXPLICIT", HighlightSpecialType.FLAG_IGNORE_REST);
writer.hilightSpecial("IGNORE_REST", HighlightSpecialType.FLAG_IGNORE_REST);
writer.newLine();
}
if (flagNeed_activation()) {

View File

@@ -94,7 +94,7 @@ public class TraitMethodGetterSetter extends Trait {
getModifiers(abc, isStatic, insideInterface, writer);
if (abc.method_info.get(method_info).flagExplicit()) {
if (abc.method_info.get(method_info).flagNative()) {
writer.appendNoHilight("native ");
}

View File

@@ -26,7 +26,7 @@ public enum HighlightSpecialType {
TYPE_NAME, CLASS_NAME, METHOD_NAME,
TRAIT_TYPE, TRAIT_NAME, TRAIT_TYPE_NAME, TRAIT_VALUE,
SLOT_ID, DISP_ID,
FLAG_NEED_REST, FLAG_EXPLICIT, FLAG_HAS_OPTIONAL, FLAG_HAS_PARAM_NAMES,
FLAG_NEED_REST, FLAG_NATIVE, FLAG_HAS_OPTIONAL, FLAG_HAS_PARAM_NAMES,
FLAG_IGNORE_REST, FLAG_NEED_ACTIVATION, FLAG_NEED_ARGUMENTS, FLAG_SET_DXNS,
TRY_TYPE, TRY_NAME,
TEXT,