diff --git a/webrtc/sdk/android/api/org/webrtc/PeerConnection.java b/webrtc/sdk/android/api/org/webrtc/PeerConnection.java index f98b2e4b67..9ddfdfdc06 100644 --- a/webrtc/sdk/android/api/org/webrtc/PeerConnection.java +++ b/webrtc/sdk/android/api/org/webrtc/PeerConnection.java @@ -489,6 +489,22 @@ public class PeerConnection { public native void close(); + /** + * Free native resources associated with this PeerConnection instance. + *
+ * This method removes a reference count from the C++ PeerConnection object, + * which should result in it being destroyed. It also calls equivalent + * "dispose" methods on the Java objects attached to this PeerConnection + * (streams, senders, receivers), such that their associated C++ objects + * will also be destroyed. + *
+ * Note that this method cannot be safely called from an observer callback + * (PeerConnection.Observer, DataChannel.Observer, etc.). If you want to, for + * example, destroy the PeerConnection after an "ICE failed" callback, you + * must do this asynchronously (in other words, unwind the stack first). See + * bug + * 3721 for more details. + */ public void dispose() { close(); for (MediaStream stream : localStreams) {