summaryrefslogtreecommitdiff
path: root/Source/WebCore/html/track/AudioTrackList.cpp
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
commit1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch)
tree46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/html/track/AudioTrackList.cpp
parent32761a6cee1d0dee366b885b7b9c777e67885688 (diff)
downloadWebKitGtk-tarball-master.tar.gz
Diffstat (limited to 'Source/WebCore/html/track/AudioTrackList.cpp')
-rw-r--r--Source/WebCore/html/track/AudioTrackList.cpp35
1 files changed, 19 insertions, 16 deletions
diff --git a/Source/WebCore/html/track/AudioTrackList.cpp b/Source/WebCore/html/track/AudioTrackList.cpp
index eb8c9a73f..71155690a 100644
--- a/Source/WebCore/html/track/AudioTrackList.cpp
+++ b/Source/WebCore/html/track/AudioTrackList.cpp
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
@@ -30,7 +30,6 @@
#include "AudioTrackList.h"
#include "AudioTrack.h"
-#include "EventNames.h"
using namespace WebCore;
@@ -43,36 +42,40 @@ AudioTrackList::~AudioTrackList()
{
}
-void AudioTrackList::append(PassRefPtr<AudioTrack> prpTrack)
+void AudioTrackList::append(Ref<AudioTrack>&& track)
{
- RefPtr<AudioTrack> track = prpTrack;
-
// Insert tracks in the media file order.
size_t index = track->inbandTrackIndex();
- m_inbandTracks.insert(index, track);
+ size_t insertionIndex;
+ for (insertionIndex = 0; insertionIndex < m_inbandTracks.size(); ++insertionIndex) {
+ auto& otherTrack = downcast<AudioTrack>(*m_inbandTracks[insertionIndex]);
+ if (otherTrack.inbandTrackIndex() > index)
+ break;
+ }
+ m_inbandTracks.insert(insertionIndex, track.ptr());
+
ASSERT(!track->mediaElement() || track->mediaElement() == mediaElement());
track->setMediaElement(mediaElement());
- scheduleAddTrackEvent(track.release());
+ scheduleAddTrackEvent(WTFMove(track));
}
AudioTrack* AudioTrackList::item(unsigned index) const
{
if (index < m_inbandTracks.size())
- return toAudioTrack(m_inbandTracks[index].get());
-
- return 0;
+ return downcast<AudioTrack>(m_inbandTracks[index].get());
+ return nullptr;
}
AudioTrack* AudioTrackList::getTrackById(const AtomicString& id) const
{
- for (size_t i = 0; i < m_inbandTracks.size(); ++i) {
- AudioTrack* track = toAudioTrack(m_inbandTracks[i].get());
- if (track->id() == id)
- return track;
+ for (auto& inbandTrack : m_inbandTracks) {
+ auto& track = downcast<AudioTrack>(*inbandTrack);
+ if (track.id() == id)
+ return &track;
}
- return 0;
+ return nullptr;
}
EventTargetInterface AudioTrackList::eventTargetInterface() const