| Index: webrtc/sdk/objc/Framework/Classes/RTCDataChannel.mm
|
| diff --git a/webrtc/sdk/objc/Framework/Classes/RTCDataChannel.mm b/webrtc/sdk/objc/Framework/Classes/RTCDataChannel.mm
|
| index 9948615a6a2b4d351ed8ad312c04a8a4e2d9d84a..706e43e2ed5a984ffdbc5a6b7183e490a2a70332 100644
|
| --- a/webrtc/sdk/objc/Framework/Classes/RTCDataChannel.mm
|
| +++ b/webrtc/sdk/objc/Framework/Classes/RTCDataChannel.mm
|
| @@ -95,7 +95,7 @@ class DataChannelDelegateAdapter : public DataChannelObserver {
|
| - (void)dealloc {
|
| // Handles unregistering the observer properly. We need to do this because
|
| // there may still be other references to the underlying data channel.
|
| - self.delegate = nil;
|
| + _nativeDataChannel->UnregisterObserver();
|
| }
|
|
|
| - (NSString *)label {
|
| @@ -147,21 +147,6 @@ class DataChannelDelegateAdapter : public DataChannelObserver {
|
| return _nativeDataChannel->buffered_amount();
|
| }
|
|
|
| -- (void)setDelegate:(id<RTCDataChannelDelegate>)delegate {
|
| - if (_delegate == delegate) {
|
| - return;
|
| - }
|
| - if (_isObserverRegistered) {
|
| - _nativeDataChannel->UnregisterObserver();
|
| - _isObserverRegistered = NO;
|
| - }
|
| - _delegate = delegate;
|
| - if (_delegate) {
|
| - _nativeDataChannel->RegisterObserver(_observer.get());
|
| - _isObserverRegistered = YES;
|
| - }
|
| -}
|
| -
|
| - (void)close {
|
| _nativeDataChannel->Close();
|
| }
|
| @@ -186,6 +171,7 @@ class DataChannelDelegateAdapter : public DataChannelObserver {
|
| if (self = [super init]) {
|
| _nativeDataChannel = nativeDataChannel;
|
| _observer.reset(new webrtc::DataChannelDelegateAdapter(self));
|
| + _nativeDataChannel->RegisterObserver(_observer.get());
|
| }
|
| return self;
|
| }
|
|
|