From 8d9c81156687baa52caaf3280a2c63754ff430aa Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Tue, 29 May 2018 09:30:06 -0400 Subject: [PATCH] Fix crashes while deallocating PeerConnectionClient. --- Signal/src/call/PeerConnectionClient.swift | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Signal/src/call/PeerConnectionClient.swift b/Signal/src/call/PeerConnectionClient.swift index 0fa87f7ac..7c06a7f1f 100644 --- a/Signal/src/call/PeerConnectionClient.swift +++ b/Signal/src/call/PeerConnectionClient.swift @@ -108,6 +108,13 @@ class PeerConnectionProxy: NSObject, RTCPeerConnectionDelegate, RTCDataChannelDe objc_sync_enter(self) let result = value objc_sync_exit(self) + + if result == nil { + // Every time this method returns nil is a + // possible crash avoided. + Logger.verbose("\(logTag) cleared get.") + } + return result } @@ -528,7 +535,7 @@ class PeerConnectionClient: NSObject, RTCPeerConnectionDelegate, RTCDataChannelD if let error = error { reject(error) } else { - fulfill(()) + fulfill() } }) } @@ -558,7 +565,7 @@ class PeerConnectionClient: NSObject, RTCPeerConnectionDelegate, RTCDataChannelD reject(error) return } - fulfill(()) + fulfill() }) } @@ -599,7 +606,7 @@ class PeerConnectionClient: NSObject, RTCPeerConnectionDelegate, RTCDataChannelD reject(error) return } - fulfill(()) + fulfill() }) } return promise