From 4fc3e7ae71ff643db730878b57a3ef5470a7e54d Mon Sep 17 00:00:00 2001 From: Alec Larson Date: Wed, 11 Sep 2019 06:02:50 -0700 Subject: [PATCH] fix: avoid calling Timing.deleteTimer for setImmediate and requestIdleCallback (#26113) Summary: Fix a simple error where `types[index]` was being accessed after it was cleared, instead of before. ## Changelog [iOS] [Fixed] - never call deleteTimer for setImmediate and requestIdleCallback Pull Request resolved: https://github.com/facebook/react-native/pull/26113 Test Plan: None Differential Revision: D17314489 Pulled By: cpojer fbshipit-source-id: 74715f0f7cc2d5cee3b97a67313c5e96e9d6c555 --- Libraries/Core/Timers/JSTimers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Libraries/Core/Timers/JSTimers.js b/Libraries/Core/Timers/JSTimers.js index 5bdd927cda..6dfd439cd3 100644 --- a/Libraries/Core/Timers/JSTimers.js +++ b/Libraries/Core/Timers/JSTimers.js @@ -218,8 +218,8 @@ function _freeCallback(timerID: number) { const index = timerIDs.indexOf(timerID); // See corresponding comment in `callTimers` for reasoning behind this if (index !== -1) { - _clearIndex(index); const type = types[index]; + _clearIndex(index); if (type !== 'setImmediate' && type !== 'requestIdleCallback') { deleteTimer(timerID); }