Reproducible crash in ViewGestureController::removeSwipeSnapshot()
authortimothy_horton@apple.com <timothy_horton@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 23 Feb 2015 21:05:28 +0000 (21:05 +0000)
committertimothy_horton@apple.com <timothy_horton@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 23 Feb 2015 21:05:28 +0000 (21:05 +0000)
https://bugs.webkit.org/show_bug.cgi?id=141917
<rdar://problem/19918590>

Reviewed by Brian Weinstein.

* UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::removeSwipeSnapshot):
If the snapshot was purged and we're showing a white snapshot, we won't
be able to mark the (null) snapshot surface as volatile. Add a null check.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@180512 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/mac/ViewGestureControllerMac.mm

index c999a74..ea146fb 100644 (file)
@@ -1,3 +1,16 @@
+2015-02-23  Timothy Horton  <timothy_horton@apple.com>
+
+        Reproducible crash in ViewGestureController::removeSwipeSnapshot()
+        https://bugs.webkit.org/show_bug.cgi?id=141917
+        <rdar://problem/19918590>
+
+        Reviewed by Brian Weinstein.
+
+        * UIProcess/mac/ViewGestureControllerMac.mm:
+        (WebKit::ViewGestureController::removeSwipeSnapshot):
+        If the snapshot was purged and we're showing a white snapshot, we won't
+        be able to mark the (null) snapshot surface as volatile. Add a null check.
+
 2015-02-23  Anders Carlsson  <andersca@apple.com>
 
         Replace another straight-up cast with a toImpl call
index 9ed7f83..b92d932 100644 (file)
@@ -772,7 +772,7 @@ void ViewGestureController::removeSwipeSnapshot()
         return;
 
 #if USE_IOSURFACE_VIEW_SNAPSHOTS
-    if (m_currentSwipeSnapshot)
+    if (m_currentSwipeSnapshot && m_currentSwipeSnapshot->surface())
         m_currentSwipeSnapshot->surface()->setIsVolatile(true);
     m_currentSwipeSnapshot = nullptr;
 #endif