Bug 1322390 - Iterate over a copy of mOwnedDirectListeners when removing them, r=pehrsons

MozReview-Commit-ID: PCLCEiKTFO
This commit is contained in:
Michael Layzell 2016-12-07 10:31:09 -10:00
parent c6fccac579
commit 73d3750562

View File

@ -58,7 +58,9 @@ TrackUnionStream::TrackUnionStream() :
if (mTrackMap[i].mInputPort == aPort) {
STREAM_LOG(LogLevel::Debug, ("TrackUnionStream %p removing trackmap entry %d", this, i));
EndTrack(i);
for (auto listener : mTrackMap[i].mOwnedDirectListeners) {
nsTArray<RefPtr<DirectMediaStreamTrackListener>> listeners(
mTrackMap[i].mOwnedDirectListeners);
for (auto listener : listeners) {
// Remove listeners while the entry still exists.
RemoveDirectTrackListenerImpl(listener, mTrackMap[i].mOutputTrackID);
}