Title: [167639] trunk/Source/WebCore
Revision
167639
Author
[email protected]
Date
2014-04-21 17:57:39 -0700 (Mon, 21 Apr 2014)

Log Message

[MSE][Mac] AVSampleBufferDisplayLayer and AudioRenderer is overretained.
https://bugs.webkit.org/show_bug.cgi?id=131963

Reviewed by Jon Honeycutt.

Adopt the results of -[[class alloc] init] rather than retaining them.

* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::hasVideo):
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (167638 => 167639)


--- trunk/Source/WebCore/ChangeLog	2014-04-22 00:23:04 UTC (rev 167638)
+++ trunk/Source/WebCore/ChangeLog	2014-04-22 00:57:39 UTC (rev 167639)
@@ -1,3 +1,16 @@
+2014-04-21  Jer Noble  <[email protected]>
+
+        [MSE][Mac] AVSampleBufferDisplayLayer and AudioRenderer is overretained.
+        https://bugs.webkit.org/show_bug.cgi?id=131963
+
+        Reviewed by Jon Honeycutt.
+
+        Adopt the results of -[[class alloc] init] rather than retaining them.
+
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
+        (WebCore::SourceBufferPrivateAVFObjC::hasVideo):
+        (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
+
 2014-04-21  Zalan Bujtas  <[email protected]>
 
         REGRESSION (r166784): Gradient at background of iCloud login page doesn’t go all the way to the bottom

Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm (167638 => 167639)


--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm	2014-04-22 00:23:04 UTC (rev 167638)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm	2014-04-22 00:57:39 UTC (rev 167639)
@@ -543,7 +543,7 @@
         m_enabledVideoTrackID = trackID;
         [m_parser setShouldProvideMediaData:YES forTrackID:trackID];
         if (!m_displayLayer) {
-            m_displayLayer = [[getAVSampleBufferDisplayLayerClass() alloc] init];
+            m_displayLayer = adoptNS([[getAVSampleBufferDisplayLayerClass() alloc] init]);
             [m_displayLayer requestMediaDataWhenReadyOnQueue:dispatch_get_main_queue() usingBlock:^{
                 didBecomeReadyForMoreSamples(trackID);
             }];
@@ -564,9 +564,9 @@
             m_mediaSource->player()->removeAudioRenderer(renderer);
     } else {
         [m_parser setShouldProvideMediaData:YES forTrackID:trackID];
-        AVSampleBufferAudioRenderer* renderer;
+        RetainPtr<AVSampleBufferAudioRenderer> renderer;
         if (!m_audioRenderers.count(trackID)) {
-            renderer = [[getAVSampleBufferAudioRendererClass() alloc] init];
+            renderer = adoptNS([[getAVSampleBufferAudioRendererClass() alloc] init]);
             [renderer requestMediaDataWhenReadyOnQueue:dispatch_get_main_queue() usingBlock:^{
                 didBecomeReadyForMoreSamples(trackID);
             }];
@@ -575,7 +575,7 @@
             renderer = m_audioRenderers[trackID].get();
 
         if (m_mediaSource)
-            m_mediaSource->player()->addAudioRenderer(renderer);
+            m_mediaSource->player()->addAudioRenderer(renderer.get());
     }
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to