Fix crash when accessing weak reference #36099
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Crash with message
uiManagerWillPerformMounting: Attempted to dereference garbage pointer <address>
Summary
We are seeing multiple crashes in production apps where uiManagerWillPerformMounting is mentioned in the context of a PHPicker controller being shown. While it's not clear how to reliable reproduce the issue, after reviewing the culprit, it does seem like an issue that a weak reference hash map is being used to access shadow views. Between being added to the map and being called they could be freed, causing this crash.
Changelog
[IOS] [FIXED] - Fixed "uiManagerWillPerformMounting" native crash while another UIViewController is active.
Test Plan
Code was NOT tested. Reproducibility is an issue, and I was not able to gather any feedback on this proposal outside of a GH PR. I would like some feedback before we merge.
However, it's clear that weak references should always be checked so it seems fine to do this.