Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from Col-E:master #50

Open
wants to merge 2,585 commits into
base: master
Choose a base branch
from
Open

[pull] master from Col-E:master #50

wants to merge 2,585 commits into from

Conversation

pull[bot]
Copy link

@pull pull bot commented Aug 21, 2024

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.1)

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull bot added ⤵️ pull merge-conflict Resolve conflicts manually labels Aug 22, 2024
Col-E added 28 commits October 15, 2024 23:46
IDK the gradlew -Dwhatever just doesn't work in IntelliJ's terminal if it has dots. Weird.
For now we'll just exit with a special exit code, since we crash anyways.

Longer term we will want to just disable features that rely on the JDK specific code rather than exit. This includes things like:

- Attaching to remote processes (jdk.attach module does not exist in JREs)
- Recompiling (JavacCompiler interface has no implementations)
…UI component creation/removal

Only for UI components that are navigable, which should be most of the root containers at the very least.
…ass to register loggers

This will allow plugins with other package names like 'org.example' to register and have their stuff still show up in the log outputs.
…lts in many duplicate entries

We were operating off the filtered view, so the logic would re-create paths all the time. Making it use the unfiltered list solves that.
Only applies to variables defined in the LVT, so no-op if no debug symbols are present
Col-E added 30 commits February 4, 2025 08:16
…rder of operations

Even looking at the method it was referencing in an old commit, the comment didn't serve much as its not clear why it was all that important.
Not all constructors have the same number of arguments, so this isn't a good arbitrary check to have
Because frame generation can fail, its reasonable to wrap that portion and rethrow so that consumers *must* handle exceptions in some way.
…es to static final fields that are not explicitly set in the static initializer

Some obfuscators don't initialize these fields and have things like opaque predicates operating off of the assumption they are initialized with default values like 0 or null.
… remove try-catches in those ranges

See the test case for an example. The opaque predicate is replaced with a goto during transformation. That makes the code for the try-catches dead, so when we remove the dead code we need to remove the try-catches because their label references are no longer in the method's instructions list.
…lower systems

On my Ryzen 7950X such tests never fail, even when repeated thousands of times. But on my i9-129000H they fail sporadically (~10% of iterations)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
⤵️ pull merge-conflict Resolve conflicts manually
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants