From 0072ee3033b9cc34c2aef4cf9e2ee97e7d758375 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Tue, 17 Jan 2017 20:17:29 -0500 Subject: [PATCH] Ensure a stale peerConnectionClient doesn't call any methods on the CallService Nil delegates when terminating call // FREEBIE --- Signal/src/call/CallService.swift | 1 + Signal/src/call/PeerConnectionClient.swift | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Signal/src/call/CallService.swift b/Signal/src/call/CallService.swift index 021d678e6..aad888ce2 100644 --- a/Signal/src/call/CallService.swift +++ b/Signal/src/call/CallService.swift @@ -885,6 +885,7 @@ fileprivate let timeoutSeconds = 60 assertOnSignalingQueue() Logger.debug("\(TAG) in \(#function)") + peerConnectionClient?.delegate = nil peerConnectionClient?.terminate() peerConnectionClient = nil diff --git a/Signal/src/call/PeerConnectionClient.swift b/Signal/src/call/PeerConnectionClient.swift index 6bab4fab6..d6e1495df 100644 --- a/Signal/src/call/PeerConnectionClient.swift +++ b/Signal/src/call/PeerConnectionClient.swift @@ -53,7 +53,7 @@ class PeerConnectionClient: NSObject, RTCPeerConnectionDelegate, RTCDataChannelD } // Delegate is notified of key events in the call lifecycle. - private weak var delegate: PeerConnectionClientDelegate! + public weak var delegate: PeerConnectionClientDelegate! // Connection