Title: [170405] trunk/Source/WebCore
Revision
170405
Author
jer.no...@apple.com
Date
2014-06-24 16:39:15 -0700 (Tue, 24 Jun 2014)

Log Message

[MSE][Mac] Uncaught exception when deallocating AVSampleBufferDisplayLayer
https://bugs.webkit.org/show_bug.cgi?id=134281

Reviewed by Brent Fulgham.

AVSampleBufferDisplayLayer is throwing an exception from its -dealloc method because KVO observers exist
at the time of dealloc. Remove the observer for outputObscuredDueToInsufficientExternalProtection inside
-stopObservingLayer.

* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(-[WebAVSampleBufferErrorListener stopObservingLayer:]):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (170404 => 170405)


--- trunk/Source/WebCore/ChangeLog	2014-06-24 23:33:55 UTC (rev 170404)
+++ trunk/Source/WebCore/ChangeLog	2014-06-24 23:39:15 UTC (rev 170405)
@@ -1,3 +1,17 @@
+2014-06-24  Jer Noble  <jer.no...@apple.com>
+
+        [MSE][Mac] Uncaught exception when deallocating AVSampleBufferDisplayLayer
+        https://bugs.webkit.org/show_bug.cgi?id=134281
+
+        Reviewed by Brent Fulgham.
+
+        AVSampleBufferDisplayLayer is throwing an exception from its -dealloc method because KVO observers exist
+        at the time of dealloc. Remove the observer for outputObscuredDueToInsufficientExternalProtection inside
+        -stopObservingLayer.
+
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
+        (-[WebAVSampleBufferErrorListener stopObservingLayer:]):
+
 2014-06-24  Mark Rowe  <mr...@apple.com>
 
         WKContextHistoryClient::didNavigateWithNavigationData is passed incorrect URL when history.pushState is used

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


--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm	2014-06-24 23:33:55 UTC (rev 170404)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm	2014-06-24 23:39:15 UTC (rev 170405)
@@ -351,6 +351,7 @@
     ASSERT(_layers.contains(layer));
 
     [layer removeObserver:self forKeyPath:@"error"];
+    [layer removeObserver:self forKeyPath:@"outputObscuredDueToInsufficientExternalProtection"];
     _layers.remove(_layers.find(layer));
 
     [[NSNotificationCenter defaultCenter] removeObserver:self name:AVSampleBufferDisplayLayerFailedToDecodeNotification object:layer];
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to