Throw IllegalStateException if native objects are used after dispose.
This makes it easier to debug issues related to double dispose /
use after dispose.
Bug: webrtc:7566, webrtc:8297
Change-Id: I07429b2b794deabb62b5f3ea1cf92eea6f66a149
Reviewed-on: https://webrtc-review.googlesource.com/102540
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Paulina Hensman <phensman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24894}
diff --git a/sdk/android/api/org/webrtc/PeerConnection.java b/sdk/android/api/org/webrtc/PeerConnection.java
index 2f9adcf..84d49eb 100644
--- a/sdk/android/api/org/webrtc/PeerConnection.java
+++ b/sdk/android/api/org/webrtc/PeerConnection.java
@@ -781,7 +781,7 @@
* use addTrack instead.
*/
public boolean addStream(MediaStream stream) {
- boolean ret = nativeAddLocalStream(stream.nativeStream);
+ boolean ret = nativeAddLocalStream(stream.getNativeMediaStream());
if (!ret) {
return false;
}
@@ -795,7 +795,7 @@
* removeTrack instead.
*/
public void removeStream(MediaStream stream) {
- nativeRemoveLocalStream(stream.nativeStream);
+ nativeRemoveLocalStream(stream.getNativeMediaStream());
localStreams.remove(stream);
}
@@ -905,7 +905,7 @@
if (track == null || streamIds == null) {
throw new NullPointerException("No MediaStreamTrack specified in addTrack.");
}
- RtpSender newSender = nativeAddTrack(track.nativeTrack, streamIds);
+ RtpSender newSender = nativeAddTrack(track.getNativeMediaStreamTrack(), streamIds);
if (newSender == null) {
throw new IllegalStateException("C++ addTrack failed.");
}
@@ -922,7 +922,7 @@
if (sender == null) {
throw new NullPointerException("No RtpSender specified for removeTrack.");
}
- return nativeRemoveTrack(sender.nativeRtpSender);
+ return nativeRemoveTrack(sender.getNativeRtpSender());
}
/**
@@ -962,7 +962,8 @@
if (init == null) {
init = new RtpTransceiver.RtpTransceiverInit();
}
- RtpTransceiver newTransceiver = nativeAddTransceiverWithTrack(track.nativeTrack, init);
+ RtpTransceiver newTransceiver =
+ nativeAddTransceiverWithTrack(track.getNativeMediaStreamTrack(), init);
if (newTransceiver == null) {
throw new IllegalStateException("C++ addTransceiver failed.");
}
@@ -993,7 +994,7 @@
// Older, non-standard implementation of getStats.
@Deprecated
public boolean getStats(StatsObserver observer, @Nullable MediaStreamTrack track) {
- return nativeOldGetStats(observer, (track == null) ? 0 : track.nativeTrack);
+ return nativeOldGetStats(observer, (track == null) ? 0 : track.getNativeMediaStreamTrack());
}
/**
@@ -1070,7 +1071,7 @@
public void dispose() {
close();
for (MediaStream stream : localStreams) {
- nativeRemoveLocalStream(stream.nativeStream);
+ nativeRemoveLocalStream(stream.getNativeMediaStream());
stream.dispose();
}
localStreams.clear();