If you are looking for the decompiler itself, visit https://github.com/jindrapetrik/jpexs-decompiler
NEW : We have got a new blog where we post some interesting SWF internals info.

#201 Main window never shows on Linux because of call to Advapi32Util.registryKeyExists
Author:
greghnz

Date created:
Type: bug
Visibility: Everybody
Assigned to:
State: closed 

> What steps will reproduce the problem?
Start ffdec on Linux operating system (e.g. via ffdec.sh)
EITHER:
- Speficy a flash file on the command line,
or
- Use 'Open Local file' and select a flash file (any .swf AFAICT)
WAIT
Loading Please Wait + progress bar shows for processing the SWF
Window shows "Creating Window" with circular throbber, but does not progress, and does not
open main window.
(details of fix below).
> What is the expected output? What do you see instead?
Expected: Main window with tree for SWF expected to open
Instead: Progress window remains without any change.
> What version of the product are you using? On what operating system?
Anything after 1.6.3u2
--> Specfically anything after Mercurial revision # 659
> Please provide any additional information below. Attach the file you have problem with
if neccessary. If you do not want to publish files YOU CAN CHANGE VISIBILITY TO PRIVATE
The issue is caused by the call to Advapi32Util.registryKeyExists() in the
Main.isAssociated() method.
The call to this method never returns on Linux
Because isAssociated() is only useful on a Windows platform, the fix to bypass this is
simple.
In Main.isAssociated() add this at the start:
if (!Platform.isWindows()) {
return false;
}
This prevents the calls to registryKeyExists() (and says it's not associated which is
true, but not really of value).
In the constructor of MainFrame, where isAssociated() is called, move the check for
windows platform to before creating the MenuItem, rather than before adding it to the
menu:
FROM:
miAssociate = new JCheckBoxMenuItem("Add FFDec to SWF files context menu");
miAssociate.setActionCommand("ASSOCIATE");
miAssociate.addActionListener(this);
miAssociate.setState(isAssociated());
if (Platform.isWindows()) {
menuSettings.add(miAssociate);
}
TO:
if (Platform.isWindows()) {
miAssociate = new JCheckBoxMenuItem("Add FFDec to SWF files context menu");
miAssociate.setActionCommand("ASSOCIATE");
miAssociate.addActionListener(this);
miAssociate.setState(isAssociated());
menuSettings.add(miAssociate);
}
Which both prevents the call to isAssociated () and prevents the user from seeing it, and
attempting to associate ffdec with swf files.
Yes, I know,
that's why there is note "LINUX / MACOS USERS: Current version has bug which causes FFDec
not working on Linux/Mac OS, please download older version (1.6.3u2)"
on the download page.
State: new→opened
Oh cool. Want a mercurial patch?
It will be fixed in next release.
I want to pack more changes(see opened issues) to the release so stay tuned...
Awesome. Thanks heaps for this app.
version 1.6.5 was released. This should be fixed, try it.
State: opened→upgraded
Works! Thanks. :)
State: upgraded→closed