Reland "Make freeNativePeerConnectionObserver generic."

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 <kwiberg@webrtc.org>
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
> 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 <kwiberg@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21587}
This commit is contained in:
Sami Kalliomäki
2018-01-11 10:02:19 +01:00
committed by Commit Bot
parent c0092c372e
commit 02879f9990
2 changed files with 7 additions and 6 deletions

View File

@ -67,6 +67,10 @@
#ifndef API_PEERCONNECTIONINTERFACE_H_ #ifndef API_PEERCONNECTIONINTERFACE_H_
#define 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 <memory> #include <memory>
#include <string> #include <string>
#include <utility> #include <utility>
@ -977,6 +981,8 @@ class PeerConnectionObserver {
kIceState, kIceState,
}; };
virtual ~PeerConnectionObserver() = default;
// Triggered when the SignalingState changed. // Triggered when the SignalingState changed.
virtual void OnSignalingChange( virtual void OnSignalingChange(
PeerConnectionInterface::SignalingState new_state) = 0; PeerConnectionInterface::SignalingState new_state) = 0;
@ -1049,10 +1055,6 @@ class PeerConnectionObserver {
// TODO(hbos,deadbeef): Make pure virtual when all subclasses implement it. // TODO(hbos,deadbeef): Make pure virtual when all subclasses implement it.
virtual void OnRemoveTrack( virtual void OnRemoveTrack(
rtc::scoped_refptr<RtpReceiverInterface> receiver) {} rtc::scoped_refptr<RtpReceiverInterface> receiver) {}
protected:
// Dtor protected as objects shouldn't be deleted via this interface.
~PeerConnectionObserver() {}
}; };
// PeerConnectionFactoryInterface is the factory interface used for creating // PeerConnectionFactoryInterface is the factory interface used for creating

View File

@ -329,8 +329,7 @@ static void JNI_PeerConnection_FreePeerConnectionObserver(
JNIEnv*, JNIEnv*,
const JavaParamRef<jclass>&, const JavaParamRef<jclass>&,
jlong j_p) { jlong j_p) {
PeerConnectionObserverJni* p = PeerConnectionObserver* p = reinterpret_cast<PeerConnectionObserver*>(j_p);
reinterpret_cast<PeerConnectionObserverJni*>(j_p);
delete p; delete p;
} }