From 3ce8c40b2c295a300d2e718e5a38f4f760701bdf Mon Sep 17 00:00:00 2001 From: Mikey Date: Tue, 12 Jan 2021 16:21:17 +0100 Subject: [PATCH 1/2] Fixed crash by adding a nil-pointer check. --- Source/ARTRealtime.m | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Source/ARTRealtime.m b/Source/ARTRealtime.m index ff6880222..03b483c61 100644 --- a/Source/ARTRealtime.m +++ b/Source/ARTRealtime.m @@ -483,7 +483,10 @@ - (void)transition:(ARTRealtimeConnectionState)state withErrorInfo:(ARTErrorInfo [_internalEventEmitter emit:[ARTEvent newWithConnectionEvent:(ARTRealtimeConnectionEvent)state] with:stateChange]; - [stateChangeEventListener startTimer]; + // stateChangeEventListener may be nil if we're in a failed state + if (stateChangeEventListener != nil) { + [stateChangeEventListener startTimer]; + } } - (void)transitionToDisconnectedOrSuspended { From 378f8da8fc08c141f4f763b9e7fb6edc87ce9265 Mon Sep 17 00:00:00 2001 From: Mikey Date: Tue, 12 Jan 2021 16:38:52 +0100 Subject: [PATCH 2/2] Fixed another potential crash related to the previous commit. --- Source/ARTRealtime.m | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Source/ARTRealtime.m b/Source/ARTRealtime.m index 03b483c61..0b495258c 100644 --- a/Source/ARTRealtime.m +++ b/Source/ARTRealtime.m @@ -514,7 +514,10 @@ - (void)updateWithErrorInfo:(nullable ARTErrorInfo *)errorInfo { ARTEventListener *stateChangeEventListener = [self transitionSideEffects:stateChange]; - [stateChangeEventListener startTimer]; + // stateChangeEventListener may be nil if we're in a failed state + if (stateChangeEventListener != nil) { + [stateChangeEventListener startTimer]; + } } - (ARTEventListener *)transitionSideEffects:(ARTConnectionStateChange *)stateChange {