Fixed crash when PCF is destroyed before RTCRtpSender in ObjC

Bug: webrtc:9231
Change-Id: I3b90400bf619938817d7a04a7a1130ba86ad65df
Reviewed-on: https://webrtc-review.googlesource.com/87623
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23896}
This commit is contained in:
Yura Yaroshevich
2018-07-09 19:16:32 +03:00
committed by Commit Bot
parent bd216f2854
commit ef43aafcf5
5 changed files with 45 additions and 9 deletions

View File

@ -386,7 +386,8 @@ void PeerConnectionDelegateAdapter::OnAddTrack(
RTCLogError(@"Failed to add track %@: %s", track, nativeSenderOrError.error().message());
return nil;
}
return [[RTCRtpSender alloc] initWithNativeRtpSender:nativeSenderOrError.MoveValue()];
return [[RTCRtpSender alloc] initWithFactory:self.factory
nativeRtpSender:nativeSenderOrError.MoveValue()];
}
- (BOOL)removeTrack:(RTCRtpSender *)sender {
@ -522,8 +523,8 @@ void PeerConnectionDelegateAdapter::OnAddTrack(
rtc::scoped_refptr<webrtc::RtpSenderInterface> nativeSender(
_peerConnection->CreateSender(nativeKind, nativeStreamId));
return nativeSender ?
[[RTCRtpSender alloc] initWithNativeRtpSender:nativeSender]
: nil;
[[RTCRtpSender alloc] initWithFactory:self.factory nativeRtpSender:nativeSender] :
nil;
}
- (NSArray<RTCRtpSender *> *)senders {
@ -532,7 +533,7 @@ void PeerConnectionDelegateAdapter::OnAddTrack(
NSMutableArray *senders = [[NSMutableArray alloc] init];
for (const auto &nativeSender : nativeSenders) {
RTCRtpSender *sender =
[[RTCRtpSender alloc] initWithNativeRtpSender:nativeSender];
[[RTCRtpSender alloc] initWithFactory:self.factory nativeRtpSender:nativeSender];
[senders addObject:sender];
}
return senders;