-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Remove virtual generic methods from ValueStore. #7980
Conversation
You can test this PR using the following package version. |
You can test this PR using the following package version. |
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.
Perf numbers look good, TextBox
case needs to be checked later though.
var newTransitions = change.NewValue.GetValueOrDefault<Transitions>(); | ||
var e = (AvaloniaPropertyChangedEventArgs<Transitions?>)change; | ||
var oldTransitions = e.OldValue.GetValueOrDefault(); | ||
var newTransitions = e.NewValue.GetValueOrDefault(); |
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.
This can use that new GetOldAndNewValue
helper right?
Well done! This PR also managed to shrink the NativeAOTed CC.NetCore from 130615KB down to 124605KB (~6mb saved). |
You can test this PR using the following package version. |
Great to hear @hez2010 - there are more changes along these lines still to come! |
No, that's nightly builds of 11.0. We don't have that big breaking changes in stable releases. |
…nPropertyChanged` deprecated virtual generic `..Changed<t>()` as per (AvaloniaUI/Avalonia#7980)
What does the pull request do?
Because we've now removed virtual generics from #7969 and #7979, we can make now remove all generic virtual methods from our private
ValueStore
implementation and associated classes.This finishes the first batch of changes relating to the use of virtual generic methods in property storage.
Benchmarks
Comparing the PR with master:
Breaking changes
No additional breaking changes (though breaking changes from #7969 and #7979) are included here.
Notes
Depends on #7969 and #7979; the diff for this PR includes changes from that PR (I wish GitHub had support for dependent PRs)