Title: [180118] trunk/Source/WebCore
Revision
180118
Author
commit-qu...@webkit.org
Date
2015-02-14 20:44:49 -0800 (Sat, 14 Feb 2015)

Log Message

IncompleteMetaDataCue leak seen on leaks bot
https://bugs.webkit.org/show_bug.cgi?id=141611

Patch by Joseph Pecoraro <pecor...@apple.com> on 2015-02-14
Reviewed by Eric Carlson.

* platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.h:
(WebCore::IncompleteMetaDataCue::IncompleteMetaDataCue): Deleted.
(WebCore::IncompleteMetaDataCue::~IncompleteMetaDataCue): Deleted.
(WebCore::IncompleteMetaDataCue::cueData): Deleted.
(WebCore::IncompleteMetaDataCue::startTime): Deleted.
Convert to a struct and hold a list of structs instead of pointers.

* platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp:
(WebCore::InbandMetadataTextTrackPrivateAVF::addDataCue):
(WebCore::InbandMetadataTextTrackPrivateAVF::updatePendingCueEndTimes):
(WebCore::InbandMetadataTextTrackPrivateAVF::flushPartialCues):
Update use of IncompleteMetaDataCue and modernize related code.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (180117 => 180118)


--- trunk/Source/WebCore/ChangeLog	2015-02-15 02:42:19 UTC (rev 180117)
+++ trunk/Source/WebCore/ChangeLog	2015-02-15 04:44:49 UTC (rev 180118)
@@ -1,3 +1,23 @@
+2015-02-14  Joseph Pecoraro  <pecor...@apple.com>
+
+        IncompleteMetaDataCue leak seen on leaks bot
+        https://bugs.webkit.org/show_bug.cgi?id=141611
+
+        Reviewed by Eric Carlson.        
+
+        * platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.h:
+        (WebCore::IncompleteMetaDataCue::IncompleteMetaDataCue): Deleted.
+        (WebCore::IncompleteMetaDataCue::~IncompleteMetaDataCue): Deleted.
+        (WebCore::IncompleteMetaDataCue::cueData): Deleted.
+        (WebCore::IncompleteMetaDataCue::startTime): Deleted.
+        Convert to a struct and hold a list of structs instead of pointers.
+
+        * platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp:
+        (WebCore::InbandMetadataTextTrackPrivateAVF::addDataCue):
+        (WebCore::InbandMetadataTextTrackPrivateAVF::updatePendingCueEndTimes):
+        (WebCore::InbandMetadataTextTrackPrivateAVF::flushPartialCues):
+        Update use of IncompleteMetaDataCue and modernize related code.
+
 2015-02-09  Brian J. Burg  <b...@cs.washington.edu>
 
         Web Inspector: remove some unnecessary Inspector prefixes from class names in Inspector namespace

Modified: trunk/Source/WebCore/platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp (180117 => 180118)


--- trunk/Source/WebCore/platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp	2015-02-15 02:42:19 UTC (rev 180117)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp	2015-02-15 04:44:49 UTC (rev 180118)
@@ -64,18 +64,16 @@
     RefPtr<SerializedPlatformRepresentation> cueData = prpCueData;
     m_currentCueStartTime = start;
     if (end.isPositiveInfinite())
-        m_incompleteCues.append(new IncompleteMetaDataCue(start, cueData));
+        m_incompleteCues.append(IncompleteMetaDataCue { cueData.get(), start });
     client()->addDataCue(this, start, end, cueData, type);
 }
 
 void InbandMetadataTextTrackPrivateAVF::updatePendingCueEndTimes(const MediaTime& time)
 {
     if (time >= m_currentCueStartTime) {
-        for (size_t i = 0; i < m_incompleteCues.size(); i++) {
-            IncompleteMetaDataCue* partialCue = m_incompleteCues[i];
-
-            LOG(Media, "InbandMetadataTextTrackPrivateAVF::addDataCue(%p) - updating cue: start=%s, end=%s", this, toString(partialCue->startTime()).utf8().data(), toString(time).utf8().data());
-            client()->updateDataCue(this, partialCue->startTime(), time, partialCue->cueData());
+        for (auto& partialCue : m_incompleteCues) {
+            LOG(Media, "InbandMetadataTextTrackPrivateAVF::addDataCue(%p) - updating cue: start=%s, end=%s", this, toString(partialCue.startTime).utf8().data(), toString(time).utf8().data());
+            client()->updateDataCue(this, partialCue.startTime, time, partialCue.cueData);
         }
     } else
         LOG(Media, "InbandMetadataTextTrackPrivateAVF::addDataCue negative length cue(s) ignored: start=%s, end=%s\n", toString(m_currentCueStartTime).utf8().data(), toString(time).utf8().data());
@@ -91,10 +89,8 @@
         LOG(Media, "InbandMetadataTextTrackPrivateAVF::resetCueValues flushing incomplete data for cues: start=%s\n", toString(m_currentCueStartTime).utf8().data());
 
     if (client()) {
-        for (size_t i = 0; i < m_incompleteCues.size(); i++) {
-            IncompleteMetaDataCue* partialCue = m_incompleteCues[i];
-            client()->removeDataCue(this, partialCue->startTime(), MediaTime::positiveInfiniteTime(), partialCue->cueData());
-        }
+        for (auto& partialCue : m_incompleteCues)
+            client()->removeDataCue(this, partialCue.startTime, MediaTime::positiveInfiniteTime(), partialCue.cueData);
     }
 
     m_incompleteCues.resize(0);

Modified: trunk/Source/WebCore/platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.h (180117 => 180118)


--- trunk/Source/WebCore/platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.h	2015-02-15 02:42:19 UTC (rev 180117)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.h	2015-02-15 04:44:49 UTC (rev 180118)
@@ -33,21 +33,9 @@
 namespace WebCore {
 
 #if ENABLE(DATACUE_VALUE)
-class IncompleteMetaDataCue {
-public:
-    IncompleteMetaDataCue(const MediaTime& time, PassRefPtr<SerializedPlatformRepresentation> cueData)
-        : m_cueData(cueData)
-        , m_startTime(time)
-    {
-    }
-    ~IncompleteMetaDataCue() { }
-
-    RefPtr<SerializedPlatformRepresentation> cueData() const { return m_cueData; }
-    MediaTime startTime() const { return m_startTime; }
-
-private:
-    RefPtr<SerializedPlatformRepresentation> m_cueData;
-    MediaTime m_startTime;
+struct IncompleteMetaDataCue {
+    RefPtr<SerializedPlatformRepresentation> cueData;
+    MediaTime startTime;
 };
 #endif
 
@@ -77,7 +65,7 @@
     AtomicString m_inBandMetadataTrackDispatchType;
     MediaTime m_currentCueStartTime;
 #if ENABLE(DATACUE_VALUE)
-    Vector<IncompleteMetaDataCue*> m_incompleteCues;
+    Vector<IncompleteMetaDataCue> m_incompleteCues;
 #endif
 };
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to