mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
5e6c61e449
Summary: This fixing a crash in RCTNativeAnimatedModule caused by accessing an `RCTSurfacePreseter` instance as "Objective-C runtime associated object" which was retained with `OBJC_ASSOCIATION_ASSIGN` policy. The documentation for `OBJC_ASSOCIATION_ASSIGN` says "Specifies a weak reference to the associated object." but it's a lie ( https://stackoverflow.com/questions/16569840/using-objc-setassociatedobject-with-weak-references) ). The policy is actually `ASSIGN` (aka `unsafe-unretained`). That's why it's crashing. We change that to `OBJC_ASSOCIATION_RETAIN` to retain the object (which meets the expectation of the interface of the category). We also should not have over-retaining issues because: * SurfacePresenter does not retain a Bridge or any object that can retain a Bridge; * SurfacePresenter is a long-living object, we don't recreate it during bridge reloading or stuff like that. Changelog: [Internal] Fabric-specific internal change. Reviewed By: sammy-SC Differential Revision: D19333869 fbshipit-source-id: 1ff03659a880f2742b909c5668c47144719eeee2