59 lines
2.0 KiB
Diff
59 lines
2.0 KiB
Diff
Copied from upstream:
|
|
https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/9719b71d72dd
|
|
|
|
# HG changeset patch
|
|
# User Byron Campen [:bwc] <docfaraday@gmail.com>
|
|
# Date 1454100887 21600
|
|
# Node ID 9719b71d72dd2a3c5ee12ace156af2a63d9595ac
|
|
# Parent b68673d974a10f65390f80b36d4307eb31e44669
|
|
Bug 1234578 - Assert if PCM is destroyed improperly. r=rjesup, a=sylvestre
|
|
|
|
diff --git a/media/webrtc/signaling/src/peerconnection/PeerConnectionMedia.cpp b/media/webrtc/signaling/src/peerconnection/PeerConnectionMedia.cpp
|
|
--- a/media/webrtc/signaling/src/peerconnection/PeerConnectionMedia.cpp
|
|
+++ b/media/webrtc/signaling/src/peerconnection/PeerConnectionMedia.cpp
|
|
@@ -712,16 +712,18 @@ PeerConnectionMedia::SelfDestruct_m()
|
|
{
|
|
CSFLogDebug(logTag, "%s: ", __FUNCTION__);
|
|
|
|
ASSERT_ON_THREAD(mMainThread);
|
|
|
|
mLocalSourceStreams.Clear();
|
|
mRemoteSourceStreams.Clear();
|
|
|
|
+ mMainThread = nullptr;
|
|
+
|
|
// Final self-destruct.
|
|
this->Release();
|
|
}
|
|
|
|
void
|
|
PeerConnectionMedia::ShutdownMediaTransport_s()
|
|
{
|
|
ASSERT_ON_THREAD(mSTSThread);
|
|
diff --git a/media/webrtc/signaling/src/peerconnection/PeerConnectionMedia.h b/media/webrtc/signaling/src/peerconnection/PeerConnectionMedia.h
|
|
--- a/media/webrtc/signaling/src/peerconnection/PeerConnectionMedia.h
|
|
+++ b/media/webrtc/signaling/src/peerconnection/PeerConnectionMedia.h
|
|
@@ -210,17 +210,20 @@ class RemoteSourceStreamInfo : public So
|
|
std::vector<std::string> mTrackIdMap;
|
|
|
|
// True iff SetPullEnabled(true) has been called on the DOMMediaStream. This
|
|
// happens when offer/answer concludes.
|
|
bool mReceiving;
|
|
};
|
|
|
|
class PeerConnectionMedia : public sigslot::has_slots<> {
|
|
- ~PeerConnectionMedia() {}
|
|
+ ~PeerConnectionMedia()
|
|
+ {
|
|
+ MOZ_RELEASE_ASSERT(!mMainThread);
|
|
+ }
|
|
|
|
public:
|
|
explicit PeerConnectionMedia(PeerConnectionImpl *parent);
|
|
|
|
PeerConnectionImpl* GetPC() { return mParent; }
|
|
nsresult Init(const std::vector<NrIceStunServer>& stun_servers,
|
|
const std::vector<NrIceTurnServer>& turn_servers);
|
|
// WARNING: This destroys the object!
|
|
|