From b96d62dbf25ff059c77a8b2232913030e7bd0a84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sami=20Kalliom=C3=A4ki?= Date: Thu, 21 Dec 2017 13:08:57 +0000 Subject: [PATCH] Revert "Make freeNativePeerConnectionObserver generic." MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 046f78cae64fec756391e81206c5aa007274b791. Reason for revert: Breaks chromium.webrtc.fyi tree 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} TBR=magjed@webrtc.org,sakal@webrtc.org,kwiberg@webrtc.org Change-Id: I4490945ca3d9a25d5ed5795bc7954dc1044bdd22 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:8662 Reviewed-on: https://webrtc-review.googlesource.com/35781 Reviewed-by: Sami Kalliomäki Commit-Queue: Sami Kalliomäki Cr-Commit-Position: refs/heads/master@{#21413} --- api/peerconnectioninterface.h | 6 ++++-- sdk/android/src/jni/pc/peerconnection.cc | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/api/peerconnectioninterface.h b/api/peerconnectioninterface.h index 6293361afd..eb6685a561 100644 --- a/api/peerconnectioninterface.h +++ b/api/peerconnectioninterface.h @@ -973,8 +973,6 @@ class PeerConnectionObserver { kIceState, }; - virtual ~PeerConnectionObserver() = default; - // Triggered when the SignalingState changed. virtual void OnSignalingChange( PeerConnectionInterface::SignalingState new_state) = 0; @@ -1047,6 +1045,10 @@ 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 d904f07d3c..ed1598034a 100644 --- a/sdk/android/src/jni/pc/peerconnection.cc +++ b/sdk/android/src/jni/pc/peerconnection.cc @@ -329,7 +329,8 @@ static void JNI_PeerConnection_FreePeerConnectionObserver( JNIEnv*, const JavaParamRef&, jlong j_p) { - PeerConnectionObserver* p = reinterpret_cast(j_p); + PeerConnectionObserverJni* p = + reinterpret_cast(j_p); delete p; }