-
Notifications
You must be signed in to change notification settings - Fork 522
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
[release/8.0.1xx] [UIKit] Store the delegate in a local variable in the UIContextMenuInteraction. #19469
Conversation
…teraction. The UIContextMenuInteraction type is a bit uncommon: the delegate is passed as an argument to the constructor, instead of setting the 'delegate' property later on (in fact, the 'delegate' property is read-only). Typically, the generated WeakDelegate property will store the value in an instance field: object? __mt_WeakDelegate_var; public virtual NSObject? WeakDelegate { get { NSObject? ret = /* ... */; MarkDirty (); __mt_WeakDelegate_var = ret; return ret!; } } And in order to have the same behavior in the UIContextMenuInteraction we need to store the delegate passed to the constructor as well, so do that. Otherwise the GC will eventually collect the delegate, and things stop working. Ref: dotnet/maui#18449
❌ [PR Build] Tests on macOS M1 - Mac Big Sur (11.5) failed ❌Tests on macOS M1 - Mac Big Sur (11.5) failed for unknown reasons. Pipeline on Agent |
💻 [CI Build] Windows Integration Tests passed 💻✅ All Windows Integration Tests passed. Pipeline on Agent |
💻 [PR Build] Tests on macOS M1 - Mac Ventura (13.0) passed 💻✅ All tests on macOS M1 - Mac Ventura (13.0) passed. Pipeline on Agent |
📚 [PR Build] Artifacts 📚Packages generatedView packagesPipeline on Agent |
✅ API diff for current PR / commitLegacy Xamarin (No breaking changes)
NET (empty diffs)
✅ API diff vs stableLegacy Xamarin (No breaking changes)NET (empty diffs)ℹ️ Generator diffGenerator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes) Pipeline on Agent |
This comment has been minimized.
This comment has been minimized.
💻 [PR Build] Tests on macOS M1 - Mac Big Sur (11.5) passed 💻✅ All tests on macOS M1 - Mac Big Sur (11.5) passed. Pipeline on Agent |
🚀 [CI Build] Test results 🚀Test results✅ All tests passed on VSTS: simulator tests. 🎉 All 235 tests passed 🎉 Tests counts✅ bcl: All 69 tests passed. Html Report (VSDrops) Download Pipeline on Agent |
@rolfbjarne shall we merge? |
The UIContextMenuInteraction type is a bit uncommon: the delegate is passed as
an argument to the constructor, instead of setting the 'delegate' property
later on (in fact, the 'delegate' property is read-only).
Typically, the generated WeakDelegate property will store the value in an instance field:
And in order to have the same behavior in the UIContextMenuInteraction we need to
store the delegate passed to the constructor as well, so do that.
Otherwise the GC will eventually collect the delegate, and things stop working.
Ref: dotnet/maui#18449
Backport of #19386