Uh oh!
There was an error while loading. Please reload this page.
[release/7.0] [mono][interp] Add unbox when calling valuetype method through delegate - #79614
Conversation
If we are calling an open instance delegate, where the target method is on a valuetype, we will need to unbox this pointer.
ghost
commented
Dec 13, 2022
Tagging subscribers to this area: @BrzVlad Issue DetailsIf we are calling an open instance delegate, where the target method is on a valuetype, we will need to unbox this pointer. Backport of #79445 Fixes #79354 Customer ImpactMAUI iOS applications making use of the popular TestingVerified fix on sample app provided in the bug report and created a simple test case that is included in our suite. RiskLow. The fix only touches the code path for a very specific type of delegate invocation pattern which was previously handled incorrectly before.
|
BrzVlad
commented
Dec 13, 2022
From the original PR, this doesn't contain the 846f4ea commit, since it is unnecessary risk for backport PR |
SamMonoRT
commented
Dec 13, 2022
@carlossanlop - this is approved via Tactics email, but we should wait till @BrzVlad confirms the CI failures are not relevant. |
7ced39b to
dc8a8aaComparedc8a8aa to
61d4333CompareBrzVlad
commented
Dec 14, 2022
I'm not seeing any failures with this |
carlossanlop
commented
Jan 4, 2023
Approved by Tactics (7.0.3). |
If we are calling an open instance delegate, where the target method is on a valuetype, we will need to unbox this pointer.
Backport of #79445
Fixes#79354
Customer Impact
MAUI iOS applications making use of the popular
AutoMapperNuGet library can crash in debug builds. Workaround is to disable mono interpreter and implicitly hot reload. Other platforms using interpreter, like blazor wasm, can potentially hit this issue even in Release.Testing
Verified fix on sample app provided in the bug report and created a simple test case that is included in our suite.
Risk
Low. The fix only touches the code path for a very specific type of delegate invocation pattern which was previously handled incorrectly before.