From 02879f9990944e86cee6e6e8ef8f7a774cc6d108 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sami=20Kalliom=C3=A4ki?= Date: Thu, 11 Jan 2018 10:02:19 +0100 Subject: [PATCH] Reland "Make freeNativePeerConnectionObserver generic." MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a reland of 046f78cae64fec756391e81206c5aa007274b791 Original change's description: > Make freeNativePeerConnectionObserver generic. > > Previously, it was only possible to free PeerConnectionObserverJni > objects using this method. Now it is generic and can free any > PeerConnectionObserver. > > Bug: webrtc:8662 > Change-Id: I619ca5ed88a0c2553fa6d19ce41e510947d5bd44 > Reviewed-on: https://webrtc-review.googlesource.com/35222 > Reviewed-by: Karl Wiberg > Reviewed-by: Magnus Jedvert > Commit-Queue: Sami Kalliomäki > Cr-Commit-Position: refs/heads/master@{#21411} Bug: webrtc:8662 Change-Id: Iba64d613f7b434260a0d7b762ca67d49b295a84f Reviewed-on: https://webrtc-review.googlesource.com/38901 Reviewed-by: Karl Wiberg Commit-Queue: Sami Kalliomäki Cr-Commit-Position: refs/heads/master@{#21587} --- api/peerconnectioninterface.h | 10 ++++++---- sdk/android/src/jni/pc/peerconnection.cc | 3 +-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/api/peerconnectioninterface.h b/api/peerconnectioninterface.h index 6ea0cb033c..9e26df5594 100644 --- a/api/peerconnectioninterface.h +++ b/api/peerconnectioninterface.h @@ -67,6 +67,10 @@ #ifndef API_PEERCONNECTIONINTERFACE_H_ #define API_PEERCONNECTIONINTERFACE_H_ +// TODO(sakal): Remove this define after migration to virtual PeerConnection +// observer is complete. +#define VIRTUAL_PEERCONNECTION_OBSERVER_DESTRUCTOR + #include #include #include @@ -977,6 +981,8 @@ class PeerConnectionObserver { kIceState, }; + virtual ~PeerConnectionObserver() = default; + // Triggered when the SignalingState changed. virtual void OnSignalingChange( PeerConnectionInterface::SignalingState new_state) = 0; @@ -1049,10 +1055,6 @@ class PeerConnectionObserver { // TODO(hbos,deadbeef): Make pure virtual when all subclasses implement it. virtual void OnRemoveTrack( rtc::scoped_refptr receiver) {} - - protected: - // Dtor protected as objects shouldn't be deleted via this interface. - ~PeerConnectionObserver() {} }; // PeerConnectionFactoryInterface is the factory interface used for creating diff --git a/sdk/android/src/jni/pc/peerconnection.cc b/sdk/android/src/jni/pc/peerconnection.cc index ed1598034a..d904f07d3c 100644 --- a/sdk/android/src/jni/pc/peerconnection.cc +++ b/sdk/android/src/jni/pc/peerconnection.cc @@ -329,8 +329,7 @@ static void JNI_PeerConnection_FreePeerConnectionObserver( JNIEnv*, const JavaParamRef&, jlong j_p) { - PeerConnectionObserverJni* p = - reinterpret_cast(j_p); + PeerConnectionObserver* p = reinterpret_cast(j_p); delete p; }