Title: [91994] trunk/Source/WebKit2
- Revision
- 91994
- Author
- [email protected]
- Date
- 2011-07-29 08:28:55 -0700 (Fri, 29 Jul 2011)
Log Message
Fix the QTouchWebView in debug segfault on shutdown introduced in 91979.
https://bugs.webkit.org/show_bug.cgi?id=64728
Reviewed by Benjamin Poulain.
unregisterTile is called in the tile's destructor, triggered in the TileSet's
destruction, which happens in the middle of the proxy's destruction
(after the m_tilesByID HashMap destruction).
Detach the tiles in the proxy's destructor to make sure they can cleanup
using a valid proxy.
* UIProcess/TiledDrawingAreaProxy.cpp:
(WebKit::TiledDrawingAreaProxy::~TiledDrawingAreaProxy):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (91993 => 91994)
--- trunk/Source/WebKit2/ChangeLog 2011-07-29 13:47:49 UTC (rev 91993)
+++ trunk/Source/WebKit2/ChangeLog 2011-07-29 15:28:55 UTC (rev 91994)
@@ -1,5 +1,21 @@
2011-07-29 Jocelyn Turcotte <[email protected]>
+ Fix the QTouchWebView in debug segfault on shutdown introduced in 91979.
+ https://bugs.webkit.org/show_bug.cgi?id=64728
+
+ Reviewed by Benjamin Poulain.
+
+ unregisterTile is called in the tile's destructor, triggered in the TileSet's
+ destruction, which happens in the middle of the proxy's destruction
+ (after the m_tilesByID HashMap destruction).
+ Detach the tiles in the proxy's destructor to make sure they can cleanup
+ using a valid proxy.
+
+ * UIProcess/TiledDrawingAreaProxy.cpp:
+ (WebKit::TiledDrawingAreaProxy::~TiledDrawingAreaProxy):
+
+2011-07-29 Jocelyn Turcotte <[email protected]>
+
Fix the QTouchWebView in debug broke in 91979.
https://bugs.webkit.org/show_bug.cgi?id=64728
Modified: trunk/Source/WebKit2/UIProcess/TiledDrawingAreaProxy.cpp (91993 => 91994)
--- trunk/Source/WebKit2/UIProcess/TiledDrawingAreaProxy.cpp 2011-07-29 13:47:49 UTC (rev 91993)
+++ trunk/Source/WebKit2/UIProcess/TiledDrawingAreaProxy.cpp 2011-07-29 15:28:55 UTC (rev 91994)
@@ -111,6 +111,10 @@
TiledDrawingAreaProxy::~TiledDrawingAreaProxy()
{
+ // Disable updates on tiles to detach them from the proxy and cut the circular dependency.
+ if (m_previousTileSet)
+ disableTileSetUpdates(m_previousTileSet.get());
+ disableTileSetUpdates(m_currentTileSet.get());
}
void TiledDrawingAreaProxy::sizeDidChange()
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes