[WK2] Fix crash in create and update tiles.
authorJungJik Lee <jungjik.lee@samsung.com>
Wed, 12 Sep 2012 07:38:00 +0000 (16:38 +0900)
committerJungJik Lee <jungjik.lee@samsung.com>
Wed, 12 Sep 2012 07:38:00 +0000 (16:38 +0900)
[Title] [WK2] Fix crash in create and update tiles.
[Issue #] NA
[Problem] Crash in create and update tiles.
[Cause] no layer exists when calling getBackingStore.
[Solution] check being the layer before calling getBackingStore.
[Developer] jungjik.lee

Source/WebKit2/UIProcess/WebLayerTreeRenderer.cpp

index 55d85a2..eda7810 100755 (executable)
@@ -450,6 +450,13 @@ PassRefPtr<LayerBackingStore> WebLayerTreeRenderer::getBackingStore(WebLayerID i
 
 void WebLayerTreeRenderer::createTile(WebLayerID layerID, int tileID, float scale)
 {
+#if OS(TIZEN)
+    // Check whether composited graphics layer already been detached
+    GraphicsLayer* pGraphicsLayer = layerByID(layerID);
+    if (!pGraphicsLayer)
+        return;
+#endif
+
     getBackingStore(layerID)->createTile(tileID, scale);
 }
 
@@ -467,6 +474,13 @@ void WebLayerTreeRenderer::removeTile(WebLayerID layerID, int tileID)
 
 void WebLayerTreeRenderer::updateTile(WebLayerID layerID, int tileID, const TileUpdate& update)
 {
+#if OS(TIZEN)
+    // Check whether composited graphics layer already been detached
+    GraphicsLayer* pGraphicsLayer = layerByID(layerID);
+    if (!pGraphicsLayer)
+        return;
+#endif
+
     RefPtr<LayerBackingStore> backingStore = getBackingStore(layerID);
     backingStore->updateTile(tileID, update.sourceRect, update.targetRect, update.surface, update.offset);
     m_backingStoresWithPendingBuffers.add(backingStore);