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; }