mirror of
https://github.com/status-im/react-native.git
synced 2025-02-03 21:24:31 +00:00
Animated - Add missing super calls to fix native animated crash
Summary: There was some missing super.__detach calls in some Animated nodes, we rely on the base class being called to drop the node in the native implementation, not doing so will cause some nodes to leak. It also resulted in a crash when removing certain nodes because they would get updated after being detached. **Test plan** Reproduced the crash by unmounting a view that uses a DiffClamp node and made sure this fixes it. Also tested that other native animations still worked properly. Fixes #11317 Closes https://github.com/facebook/react-native/pull/12910 Differential Revision: D4718188 Pulled By: javache fbshipit-source-id: 179ec1334532152c124a9c0f447f488311925d0a
This commit is contained in:
parent
673093eed0
commit
c233191485
@ -1327,6 +1327,7 @@ class AnimatedModulo extends AnimatedWithChildren {
|
||||
|
||||
__detach(): void {
|
||||
this._a.__removeChild(this);
|
||||
super.__detach();
|
||||
}
|
||||
|
||||
__getNativeConfig(): any {
|
||||
@ -1377,6 +1378,7 @@ class AnimatedDiffClamp extends AnimatedWithChildren {
|
||||
|
||||
__detach(): void {
|
||||
this._a.__removeChild(this);
|
||||
super.__detach();
|
||||
}
|
||||
|
||||
__getNativeConfig(): any {
|
||||
@ -1460,6 +1462,7 @@ class AnimatedTransform extends AnimatedWithChildren {
|
||||
}
|
||||
}
|
||||
});
|
||||
super.__detach();
|
||||
}
|
||||
|
||||
__getNativeConfig(): any {
|
||||
@ -1567,6 +1570,7 @@ class AnimatedStyle extends AnimatedWithChildren {
|
||||
value.__removeChild(this);
|
||||
}
|
||||
}
|
||||
super.__detach();
|
||||
}
|
||||
|
||||
__makeNative() {
|
||||
|
@ -281,7 +281,7 @@ describe('Native Animated', () => {
|
||||
);
|
||||
|
||||
expect(nativeAnimatedModule.disconnectAnimatedNodes).toHaveBeenCalledTimes(2);
|
||||
expect(nativeAnimatedModule.dropAnimatedNode).toHaveBeenCalledTimes(2);
|
||||
expect(nativeAnimatedModule.dropAnimatedNode).toHaveBeenCalledTimes(3);
|
||||
});
|
||||
|
||||
it('sends a valid description for value, style and props nodes', () => {
|
||||
|
Loading…
x
Reference in New Issue
Block a user