From f60adad8a1526c3ea445e09c24a19ec42daef3dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sat, 2 May 2026 08:05:53 +0200 Subject: [PATCH] fix: ignore deleted traits on indexing (PR256) Fixes PR256 --- .../flash/abc/avm2/parser/script/AbcIndexing.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AbcIndexing.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AbcIndexing.java index 5f4c8c969..de5336fa7 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AbcIndexing.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AbcIndexing.java @@ -47,7 +47,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Set; -import java.util.WeakHashMap; /** * Indexing of ABCs for faster access. Indexes ABC classes for faster class and @@ -1104,6 +1103,9 @@ public final class AbcIndexing { */ protected void indexTraits(ABC abc, int name_index, Traits ts, Map map, Map mapNs, Map> mapAmbiguous, int scriptIndex) { for (Trait t : ts.traits) { + if (t.deleted) { + continue; + } ValueKind propValue = null; if (t instanceof TraitSlotConst) { TraitSlotConst tsc = (TraitSlotConst) t; @@ -1233,6 +1235,9 @@ public final class AbcIndexing { indexTraits(abc, 0, abc.script_info.get(i).traits, null, scriptProperties, scriptAmbiguousProperties, i); for (int t = 0; t < abc.script_info.get(i).traits.traits.size(); t++) { Trait tr = abc.script_info.get(i).traits.traits.get(t); + if (tr.deleted) { + continue; + } if (tr instanceof TraitClass) { TraitClass tc = (TraitClass) tr; InstanceInfo ii = abc.instance_info.get(tc.class_info);