From c04e79e85a48614ee17dec9b6626acffe8be69a5 Mon Sep 17 00:00:00 2001 From: Kevin Gozali Date: Sat, 4 Mar 2017 16:42:55 -0800 Subject: [PATCH] iOS: fixed RCTDevSettings executor-override handling Summary: RCTDevSettings incorrectly assigned "bad" executor-override class to the executor instead of checking if the class exists before assigning it. It should really check if the class exists, and fallback to defaults otherwise. Reviewed By: mmmulani, yungsters Differential Revision: D4655926 fbshipit-source-id: 48c8fe28f22aaa8430752411ce5e6e858dbd4b32 --- React/Modules/RCTDevSettings.mm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/React/Modules/RCTDevSettings.mm b/React/Modules/RCTDevSettings.mm index b41733683..171b25320 100644 --- a/React/Modules/RCTDevSettings.mm +++ b/React/Modules/RCTDevSettings.mm @@ -228,8 +228,9 @@ RCT_EXPORT_METHOD(setIsDebuggingRemotely:(BOOL)enabled) { // This value is passed as a command-line argument, so fall back to reading from NSUserDefaults directly NSString *executorOverride = [[NSUserDefaults standardUserDefaults] stringForKey:kRCTDevSettingExecutorOverrideClass]; - if (executorOverride) { - self.executorClass = NSClassFromString(executorOverride); + Class executorOverrideClass = executorOverride ? NSClassFromString(executorOverride) : nil; + if (executorOverrideClass) { + self.executorClass = executorOverrideClass; } else { BOOL enabled = self.isRemoteDebuggingAvailable && self.isDebuggingRemotely; self.executorClass = enabled ? objc_getClass("RCTWebSocketExecutor") : nil;