Title: [168226] trunk/Source/WebCore
Revision
168226
Author
simon.fra...@apple.com
Date
2014-05-03 12:13:56 -0700 (Sat, 03 May 2014)

Log Message

Fix crash in WebKit client app when zooming
https://bugs.webkit.org/show_bug.cgi?id=132475
<rdar://problem/16703405>

Reviewed by Tim Horton.

It's possible for a WebTiledBackingLayer CALayer to remain in the CALayer
hierarchy after we've called -invalidate on it, which clears the _tileController.
Project the getters against null derefs to handle this.

* platform/graphics/ca/mac/WebTiledBackingLayer.mm:
(-[WebTiledBackingLayer isOpaque]):
(-[WebTiledBackingLayer acceleratesDrawing]):
(-[WebTiledBackingLayer contentsScale]):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (168225 => 168226)


--- trunk/Source/WebCore/ChangeLog	2014-05-03 18:52:45 UTC (rev 168225)
+++ trunk/Source/WebCore/ChangeLog	2014-05-03 19:13:56 UTC (rev 168226)
@@ -1,3 +1,20 @@
+2014-05-03  Simon Fraser  <simon.fra...@apple.com>
+
+        Fix crash in WebKit client app when zooming
+        https://bugs.webkit.org/show_bug.cgi?id=132475
+        <rdar://problem/16703405>
+
+        Reviewed by Tim Horton.
+
+        It's possible for a WebTiledBackingLayer CALayer to remain in the CALayer
+        hierarchy after we've called -invalidate on it, which clears the _tileController.
+        Project the getters against null derefs to handle this.
+
+        * platform/graphics/ca/mac/WebTiledBackingLayer.mm:
+        (-[WebTiledBackingLayer isOpaque]):
+        (-[WebTiledBackingLayer acceleratesDrawing]):
+        (-[WebTiledBackingLayer contentsScale]):
+
 2014-05-03  Carlos Garcia Campos  <cgar...@igalia.com>
 
         Unreviewed. Fix GTK+ build after r168209.

Modified: trunk/Source/WebCore/platform/graphics/ca/mac/WebTiledBackingLayer.mm (168225 => 168226)


--- trunk/Source/WebCore/platform/graphics/ca/mac/WebTiledBackingLayer.mm	2014-05-03 18:52:45 UTC (rev 168225)
+++ trunk/Source/WebCore/platform/graphics/ca/mac/WebTiledBackingLayer.mm	2014-05-03 19:13:56 UTC (rev 168226)
@@ -90,7 +90,7 @@
 
 - (BOOL)isOpaque
 {
-    return _tileController->tilesAreOpaque();
+    return _tileController ? _tileController->tilesAreOpaque() : NO;
 }
 
 - (void)setNeedsDisplay
@@ -110,7 +110,7 @@
 
 - (BOOL)acceleratesDrawing
 {
-    return _tileController->acceleratesDrawing();
+    return _tileController ? _tileController->acceleratesDrawing() : NO;
 }
 
 - (void)setContentsScale:(CGFloat)contentsScale
@@ -120,7 +120,7 @@
 
 - (CGFloat)contentsScale
 {
-    return _tileController->contentsScale();
+    return _tileController ? _tileController->contentsScale() : 1;
 }
 
 - (WebCore::TiledBacking*)tiledBacking
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to