WebKit Bugzilla
Attachment 339559 Details for
Bug 185305
: Use more references in updateTracksOfType
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-185305-20180504101301.patch (text/plain), 6.03 KB, created by
youenn fablet
on 2018-05-04 10:13:02 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
youenn fablet
Created:
2018-05-04 10:13:02 PDT
Size:
6.03 KB
patch
obsolete
>Subversion Revision: 231318 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 4459ad92876a1fdcd03899d715dab782cc76bdef..05d38c69e44b34100975ae6eb11768c09591928f 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,16 @@ >+2018-05-04 Youenn Fablet <youenn@apple.com> >+ >+ Use more references in updateTracksOfType >+ https://bugs.webkit.org/show_bug.cgi?id=185305 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ No change of behavior. >+ >+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: >+ (WebCore::updateTracksOfType): >+ (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateTracks): >+ > 2018-05-04 Youenn Fablet <youenn@apple.com> > > LayoutTests/fast/mediastream/change-tracks-media-stream-being-played.html is crashing after r231304 >diff --git a/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm b/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm >index 00ee7cd9fc2bcba5957297873fe9a169f15b7c9a..9d12ce606bb0fba532eebcdd4b1110377688c3ed 100644 >--- a/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm >+++ b/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm >@@ -915,7 +915,7 @@ typedef enum { > } TrackState; > > template <typename RefT> >-void updateTracksOfType(HashMap<String, RefT>& trackMap, RealtimeMediaSource::Type trackType, MediaStreamTrackPrivateVector& currentTracks, RefT (*itemFactory)(MediaStreamTrackPrivate&), const Function<void(RefT, int, TrackState)>& configureTrack) >+void updateTracksOfType(HashMap<String, RefT>& trackMap, RealtimeMediaSource::Type trackType, MediaStreamTrackPrivateVector& currentTracks, RefT (*itemFactory)(MediaStreamTrackPrivate&), const Function<void(typename RefT::ValueType&, int, TrackState)>& configureTrack) > { > Vector<RefT> removedTracks; > Vector<RefT> addedTracks; >@@ -947,15 +947,15 @@ void updateTracksOfType(HashMap<String, RefT>& trackMap, RealtimeMediaSource::Ty > > int index = 0; > for (auto& track : removedTracks) >- configureTrack(track, index++, TrackState::Remove); >+ configureTrack(*track, index++, TrackState::Remove); > > index = 0; > for (auto& track : addedTracks) >- configureTrack(track, index++, TrackState::Add); >+ configureTrack(*track, index++, TrackState::Add); > > index = 0; > for (const auto& track : trackMap.values()) >- configureTrack(track, index++, TrackState::Configure); >+ configureTrack(*track, index++, TrackState::Configure); > } > > void MediaPlayerPrivateMediaStreamAVFObjC::checkSelectedVideoTrack() >@@ -992,47 +992,47 @@ void MediaPlayerPrivateMediaStreamAVFObjC::updateTracks() > { > MediaStreamTrackPrivateVector currentTracks = m_mediaStreamPrivate->tracks(); > >- Function<void(RefPtr<AudioTrackPrivateMediaStreamCocoa>, int, TrackState)> setAudioTrackState = [this](auto track, int index, TrackState state) >+ auto setAudioTrackState = [this](AudioTrackPrivateMediaStreamCocoa& track, int index, TrackState state) > { > switch (state) { > case TrackState::Remove: >- track->streamTrack().removeObserver(*this); >- m_player->removeAudioTrack(*track); >+ track.streamTrack().removeObserver(*this); >+ m_player->removeAudioTrack(track); > break; > case TrackState::Add: >- track->streamTrack().addObserver(*this); >- m_player->addAudioTrack(*track); >+ track.streamTrack().addObserver(*this); >+ m_player->addAudioTrack(track); > break; > case TrackState::Configure: >- track->setTrackIndex(index); >- bool enabled = track->streamTrack().enabled() && !track->streamTrack().muted(); >- track->setEnabled(enabled); >+ track.setTrackIndex(index); >+ bool enabled = track.streamTrack().enabled() && !track.streamTrack().muted(); >+ track.setEnabled(enabled); > break; > } > }; >- updateTracksOfType(m_audioTrackMap, RealtimeMediaSource::Type::Audio, currentTracks, &AudioTrackPrivateMediaStreamCocoa::create, setAudioTrackState); >+ updateTracksOfType(m_audioTrackMap, RealtimeMediaSource::Type::Audio, currentTracks, &AudioTrackPrivateMediaStreamCocoa::create, WTFMove(setAudioTrackState)); > >- Function<void(RefPtr<VideoTrackPrivateMediaStream>, int, TrackState)> setVideoTrackState = [&](auto track, int index, TrackState state) >+ auto setVideoTrackState = [this](VideoTrackPrivateMediaStream& track, int index, TrackState state) > { > switch (state) { > case TrackState::Remove: >- track->streamTrack().removeObserver(*this); >- m_player->removeVideoTrack(*track); >+ track.streamTrack().removeObserver(*this); >+ m_player->removeVideoTrack(track); > checkSelectedVideoTrack(); > break; > case TrackState::Add: >- track->streamTrack().addObserver(*this); >- m_player->addVideoTrack(*track); >+ track.streamTrack().addObserver(*this); >+ m_player->addVideoTrack(track); > break; > case TrackState::Configure: >- track->setTrackIndex(index); >- bool selected = &track->streamTrack() == m_mediaStreamPrivate->activeVideoTrack(); >- track->setSelected(selected); >+ track.setTrackIndex(index); >+ bool selected = &track.streamTrack() == m_mediaStreamPrivate->activeVideoTrack(); >+ track.setSelected(selected); > checkSelectedVideoTrack(); > break; > } > }; >- updateTracksOfType(m_videoTrackMap, RealtimeMediaSource::Type::Video, currentTracks, &VideoTrackPrivateMediaStream::create, setVideoTrackState); >+ updateTracksOfType(m_videoTrackMap, RealtimeMediaSource::Type::Video, currentTracks, &VideoTrackPrivateMediaStream::create, WTFMove(setVideoTrackState)); > } > > std::unique_ptr<PlatformTimeRanges> MediaPlayerPrivateMediaStreamAVFObjC::seekable() const
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 185305
: 339559