From bd47698c1a2f8f5c199eed0b1ec837075d005ecf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sun, 5 Oct 2025 19:00:51 +0200 Subject: [PATCH] Added: AS3 Document class is underlined and has different icon --- CHANGELOG.md | 3 +++ .../decompiler/flash/abc/ScriptPack.java | 21 +++++++++++++----- .../decompiler/flash/gui/FolderListPanel.java | 9 ++++++++ .../flash/gui/graphics/asclassmain16.png | Bin 0 -> 4850 bytes .../flash/gui/graphics/asclassmain32.png | Bin 0 -> 5035 bytes .../flash/gui/graphics/gotomainclass16.png | Bin 6332 -> 4850 bytes .../flash/gui/graphics/gotomainclass32.png | Bin 8061 -> 5035 bytes .../flash/gui/tagtree/AbstractTagTree.java | 7 ++++++ .../decompiler/flash/gui/tagtree/TagTree.java | 14 +++++++++++- 9 files changed, 47 insertions(+), 7 deletions(-) create mode 100644 src/com/jpexs/decompiler/flash/gui/graphics/asclassmain16.png create mode 100644 src/com/jpexs/decompiler/flash/gui/graphics/asclassmain32.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 03de1a76d..faf6cd991 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +### Added +- AS3 Document class is underlined and has different icon + ### Fixed - [#2536] AS3 switches detection incorrectly replaces basic ifs with strict equals - [#2536] AS3 switches detection not handling loops diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/ScriptPack.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/ScriptPack.java index 938f95379..18e6e360d 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/ScriptPack.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/ScriptPack.java @@ -264,7 +264,7 @@ public class ScriptPack extends AS3ClassTreeItem { if (getOpenable() instanceof SWF) { swfVersion = ((SWF) getOpenable()).version; } - + int sinit_index = abc.script_info.get(scriptIndex).init_index; int sinit_bodyIndex = abc.findBodyIndex(sinit_index); if (sinit_bodyIndex != -1 && (isSimple || traitIndices.isEmpty())) { @@ -283,7 +283,7 @@ public class ScriptPack extends AS3ClassTreeItem { } ScopeStack scopeStack = new ScopeStack(); scopeStack.push(new GlobalAVM2Item(null, null)); - + for (int t : traitIndices) { Trait trait = traits.get(t); Multiname name = trait.getName(abc); @@ -312,12 +312,12 @@ public class ScriptPack extends AS3ClassTreeItem { */ @SuppressWarnings("unchecked") private void appendTo(Set usedDeobfuscations, AbcIndexing abcIndex, GraphTextWriter writer, List traits, ConvertData convertData, ScriptExportMode exportMode, boolean parallel, boolean exportAllClasses) throws InterruptedException { - + int swfVersion = -1; if (getOpenable() instanceof SWF) { swfVersion = ((SWF) getOpenable()).version; } - + boolean first = true; //script initializer int script_init = abc.script_info.get(scriptIndex).init_index; @@ -344,7 +344,7 @@ public class ScriptPack extends AS3ClassTreeItem { Trait trait = traits.get(t); traitList.add(trait); } - + List fullyQualifiedNames = new ArrayList<>(); for (int t = 0; t < traitList.size(); t++) { @@ -371,7 +371,6 @@ public class ScriptPack extends AS3ClassTreeItem { t--; } - if (!first) { writer.newLine(); } @@ -1079,4 +1078,14 @@ public class ScriptPack extends AS3ClassTreeItem { } } } + + public boolean isDocumentClass() { + String documentClass = abc.getSwf().getDocumentClass(); + if (documentClass != null) { + if (documentClass.equals(getClassPath().toRawString())) { + return true; + } + } + return false; + } } diff --git a/src/com/jpexs/decompiler/flash/gui/FolderListPanel.java b/src/com/jpexs/decompiler/flash/gui/FolderListPanel.java index 899f47eab..f810e6d90 100644 --- a/src/com/jpexs/decompiler/flash/gui/FolderListPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/FolderListPanel.java @@ -17,6 +17,7 @@ package com.jpexs.decompiler.flash.gui; import com.jpexs.decompiler.flash.IdentifiersDeobfuscation; +import com.jpexs.decompiler.flash.abc.ScriptPack; import com.jpexs.decompiler.flash.configuration.Configuration; import com.jpexs.decompiler.flash.gui.tagtree.AbstractTagTree; import com.jpexs.decompiler.flash.tags.DoInitActionTag; @@ -251,6 +252,14 @@ public class FolderListPanel extends JPanel { } Icon icon = ICONS.get(type); + + if (treeItem instanceof ScriptPack) { + ScriptPack sp = (ScriptPack) treeItem; + if (sp.isDocumentClass()) { + icon = View.getIcon("asclassmain32"); + } + } + icon.paintIcon(l, g, x * CELL_WIDTH + BORDER_SIZE + PREVIEW_SIZE / 2 - icon.getIconWidth() / 2, y * CELL_HEIGHT + BORDER_SIZE + PREVIEW_SIZE / 2 - icon.getIconHeight() / 2); String s = null; if (treeItem instanceof DoInitActionTag) { diff --git a/src/com/jpexs/decompiler/flash/gui/graphics/asclassmain16.png b/src/com/jpexs/decompiler/flash/gui/graphics/asclassmain16.png new file mode 100644 index 0000000000000000000000000000000000000000..fb4a3be6a6e2908347f37fe2bf1e53bc91f4cacd GIT binary patch literal 4850 zcmeHLdsGu=79ZuM2o`+5TGA*g>LfFh_cReO0YOc81;i@HPG%-yBrlRN2^_a73aAx5 zD!NvvqP4b_)^)X3J@~-Ns$HLJML<^&Q4zJi(5l79ehClZwCC(`&-x!Znas?6{JwjC z_ulVhW@)@;a-jb(e+YsCV`Ef_;2h*WdijFikmlC}I33N_rm~5IlVi16^o)__uvu1` zL%SF~1i3Dm;%D|97bM@oWavuMB3>z-WK2)3Y zV)Cv2OP5wI+U^&b7c4I+Fl6rdct>2Sc;n`V_%VfwmVo_Lf3N=SBBfqp?DYv5aU8le zCir8?@}WQTe7|9&hD{ZN9{upO*JHmceltS)UM#JKpdO1Er7}KNsccUNBvJgARf?FS z5kvCowym4;?bzzgOO$!Hslfv?CnQhE$vvNvUU}sD`S5gIOyaB&K2 zf0j?=1HXziYa+X<-{GnLu=W~7wg_3tKH;xM%v~0ZY!N3o_ z5tU#ZniSVK=+T1_v!6bA_>y;K_klaFMtDv6nOYDxN`qY4xuj~TK@5MRKxw8NsEa`P!=7{bD6B5?;uDX?y?eO z2F-GGw1F`zxcAErb2$v9;7%8*5w%rGr!z6xHaaO=qb0L5NEyWqpXe`l;Q+uyvjoRw zGMeqUOTqQv;^5jX=5sk76E;J^O;yKplolJ!5%PpQ1dehs4vag|pCh+XdOT4T-39^f z6x?){wc>of)9K_n1w4z*z(-{=86Uy;7zP6i*q&u(2^Va(k90${VyI|4X=AJ`V=;5w zn1s$UmsN1NK+kE9&tz4rJK)XsHWmOMd>3KmqdbIfGVwcm*x4ut0BH;8Pd)5fFs1xN z+HRR^Bk3pyZDvPyhM>p}f9qVE(UT5E@@XS&0;YDbD%xeq$+7DA4i7g42F7IdcmcAz zSh9@%4Ov}cb89^5bPfc#ci?uhZqMCg46M{@TxB8Wy2FcADY)+Samqq66z;i{N@z@m ziKQ^D7wKRjN>Z?n6i8rNfM6o2RHD;k`c6=>W;;umN!kqszclN<=cT6ceCgDI$@IWp9j9Xqz4Mq8k-OcmkWKFAcwI)74GaTQTrf#@*f3P1jp7@K(m% z-SvN?%m2-@B5ekL@SNaD@JLwwVek~`tD8Dm1x&4nckTyN@2w zhTa8bi`>7<&%*X=s-l-cKDLOAZbe(JJxjRob zZ2kb*l~9tLTz}ASVQJm;X{WruUeU1Wc=6p$S1Z5Vu1$_wJ!)>;w6ZU`-%RKI+o#l( z>sZ@-ySQfM(1ZcOc^_tu*jrRq*-&5Avv{zv=6K6YXjfV2(;DYbM}lfDADvlNR30|( z8TIh}sZ8y)VrKLWASBtk(=NXJ{K=&E9!a<6Am#cTvDf19~Z`tz^ z!@bu#>X-ubr2n?vL$@#E1Y`$C9U9%!m2E9g7fw?BNE-V+J7$u52j-MRy4&OJXKp;n po>+Ldxa@UR*5ea)^QGYO*|##!ta-GhHVjl3ijC5!c1-#t=RfB{_Wl3> literal 0 HcmV?d00001 diff --git a/src/com/jpexs/decompiler/flash/gui/graphics/asclassmain32.png b/src/com/jpexs/decompiler/flash/gui/graphics/asclassmain32.png new file mode 100644 index 0000000000000000000000000000000000000000..0e218e25e0658a6a744991a21f357dafef775dcb GIT binary patch literal 5035 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%0A54K%0~fIV94u_%fF z5CkvqFk*0(%kuIvRaI4geA%|`y>@vYmSus0iQEJu)(DY_Xq;=LsiuicCWA2stu=LZ zb;bMT0HqX04DX_Mgl>pgYZ%p|%qC~4sHnhk99-8e6AQZ{KlpIqX;r$8lB%L6$hW!TeOI1Q3`DCK#K1{QJ zKR>_PVnu~QArHjW3gRZ9{@_*awso*;^fkGc*SG*o{$s5pAoT-uQC{J|qCZ0b0000< KMNUMnLSTY@r#HL+ diff --git a/src/com/jpexs/decompiler/flash/gui/graphics/gotomainclass32.png b/src/com/jpexs/decompiler/flash/gui/graphics/gotomainclass32.png index 6bb02d2d81f0af54a96e756ce302f394669382b5..0e218e25e0658a6a744991a21f357dafef775dcb 100644 GIT binary patch delta 1780 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 1) { - setText(val.toString() + " [" + itemIndex + "]"); + txt = txt + " [" + itemIndex + "]"; } + + if (val instanceof ScriptPack) { + ScriptPack sp = (ScriptPack) val; + if (sp.isDocumentClass()) { + txt = "" + txt.replace("&", "&").replace("<", "<").replace(">", ">") + ""; + } + } + + setText(txt); return this; }