-
Notifications
You must be signed in to change notification settings - Fork 377
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
Bugfixes and speedup #241
base: master
Are you sure you want to change the base?
Bugfixes and speedup #241
Conversation
…ilyOrAssembly-property of FieldDefinition (now behaves like the method check. - InheritMap now also generates groups for virtual methods of props (set, get) and events (add, remove). - The group info is used to find out if any virtual method in the group belongs to a public type and therefore should be skipped. e.g. public interface implemented by internal class or vice a versa.
…od, but speedup matching by only updating name cache when needed
|
FYI, I also signed the CLA as I was so kind to cleanup some of @mv3shape commit history 😅 |
👋 @SorenMaagaard please remember to sign the CLA and associate your 3shape email with your github account: https://help.github.com/en/articles/adding-an-email-address-to-your-github-account |
return true; | ||
} | ||
|
||
if (prop.Property.IsPublic() && prop.DeclaringType.ImplementsInterface("System.ComponentModel.INotifyPropertyChanged")) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not all public properties of a type derived from INotifyPropertyChanged are used for MVVM pattern (though I agree most of them should), so I still prefer explicit skip rules to such automatic processing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do you think about making it an option like I did with AbortOnInconsistentState?
I think it should be split into several pull requests for me to review. Some of the changes (logging related) are trivial while others can be further discussed. I cannot take it in the current form. |
I have fixed around 20 different issues primarily related to XAML and using complex generics across multiple assemblies, but also simpler things like being able to override Equals and GetHashCode. There is more or less one fix in each commit as you can see on the commit descriptions, but changing it to 20 independent pull requests would be a lot of work as some of the fixes also build on each other. |
Thanks. Then I might have to cherry pick the commits, instead of accepting them in this pull request. I will close this one once I finish reviewing each commits. |
Of course, if you think I've made a mistake let me know so that I can correct it and update the request.. |
What's the progress? |
@GF-Huang you can try 3sharp's fork out yourself https://github.com/3shape/obfuscar I don't plan to accept this pull request yet, because at least it doesn't work for a few key projects of my own. |
How about #58? Any plans? |
@lextm which problems do you experience with your projects? |
@mv3shape They are relatively large closed source projects, so I won't be able to share much information. |
I've been testing Obfuscar on a large project with 70+ assemblies, lots of XAML with styling and lots of generics, and in order to make the obfuscation pass without crashing and get a working application afterwards I've fixed a number of bugs. Also, the process now runs in about half the time, from ~2mins to ~1min on my app. All tests pass, including a few new ones I added.