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

@ -12,8 +12,10 @@
#import <WebRTC/RTCDataChannel.h>
#import <WebRTC/RTCDataChannelConfiguration.h>
#import <WebRTC/RTCMediaConstraints.h>
#import <WebRTC/RTCMediaStreamTrack.h>
#import <WebRTC/RTCPeerConnection.h>
#import <WebRTC/RTCPeerConnectionFactory.h>
#import <WebRTC/RTCRtpSender.h>
#import <WebRTC/RTCRtpTransceiver.h>
#import <XCTest/XCTest.h>
@ -119,4 +121,30 @@
XCTAssertTrue(true, "Expect test does not crash");
}
- (void)testRTCRtpSenderLifetime {
@autoreleasepool {
RTCConfiguration *config = [[RTCConfiguration alloc] init];
RTCMediaConstraints *contraints =
[[RTCMediaConstraints alloc] initWithMandatoryConstraints:@{} optionalConstraints:nil];
RTCPeerConnectionFactory *factory;
RTCPeerConnection *peerConnection;
RTCRtpSender *sender;
@autoreleasepool {
factory = [[RTCPeerConnectionFactory alloc] init];
peerConnection =
[factory peerConnectionWithConfiguration:config constraints:contraints delegate:nil];
sender = [peerConnection senderWithKind:kRTCMediaStreamTrackKindVideo streamId:@"stream"];
XCTAssertTrue(sender != nil);
[peerConnection close];
peerConnection = nil;
factory = nil;
}
sender = nil;
}
XCTAssertTrue(true, "Expect test does not crash");
}
@end