Title: [118365] trunk/Source/WebCore
- Revision
- 118365
- Author
- [email protected]
- Date
- 2012-05-24 07:20:05 -0700 (Thu, 24 May 2012)
Log Message
[BlackBerry] Possible deadlock in the WebGL code path
https://bugs.webkit.org/show_bug.cgi?id=87375
Patch by Robin Cao <[email protected]> on 2012-05-24
Reviewed by Rob Buis.
Fix a deadlock happening in the WebGL code path. The mutex is locked
but is not unlocked afterword. Also fix a possible double delete,
the mutex m_frontBufferLock will be destroyed in the base class.
Covered by tests in fast/canvas/webgl.
* platform/graphics/blackberry/LayerCompositingThread.cpp:
(WebCore::LayerCompositingThread::releaseTextureResources):
* platform/graphics/blackberry/WebGLLayerWebKitThread.cpp:
(WebCore::WebGLLayerWebKitThread::~WebGLLayerWebKitThread):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (118364 => 118365)
--- trunk/Source/WebCore/ChangeLog 2012-05-24 14:13:48 UTC (rev 118364)
+++ trunk/Source/WebCore/ChangeLog 2012-05-24 14:20:05 UTC (rev 118365)
@@ -1,3 +1,21 @@
+2012-05-24 Robin Cao <[email protected]>
+
+ [BlackBerry] Possible deadlock in the WebGL code path
+ https://bugs.webkit.org/show_bug.cgi?id=87375
+
+ Reviewed by Rob Buis.
+
+ Fix a deadlock happening in the WebGL code path. The mutex is locked
+ but is not unlocked afterword. Also fix a possible double delete,
+ the mutex m_frontBufferLock will be destroyed in the base class.
+
+ Covered by tests in fast/canvas/webgl.
+
+ * platform/graphics/blackberry/LayerCompositingThread.cpp:
+ (WebCore::LayerCompositingThread::releaseTextureResources):
+ * platform/graphics/blackberry/WebGLLayerWebKitThread.cpp:
+ (WebCore::WebGLLayerWebKitThread::~WebGLLayerWebKitThread):
+
2012-05-24 Ian Vollick <[email protected]>
[chromium] Forcibly sync running animations in the waiting state when synchronized start times are needed.
Modified: trunk/Source/WebCore/platform/graphics/blackberry/LayerCompositingThread.cpp (118364 => 118365)
--- trunk/Source/WebCore/platform/graphics/blackberry/LayerCompositingThread.cpp 2012-05-24 14:13:48 UTC (rev 118364)
+++ trunk/Source/WebCore/platform/graphics/blackberry/LayerCompositingThread.cpp 2012-05-24 14:20:05 UTC (rev 118365)
@@ -305,7 +305,7 @@
m_pluginBuffer = 0;
m_pluginView->unlockFrontBuffer();
}
- if (m_texID && m_frontBufferLock)
+ if (m_frontBufferLock && (m_texID || layerType() == LayerData::WebGLLayer))
pthread_mutex_unlock(m_frontBufferLock);
}
Modified: trunk/Source/WebCore/platform/graphics/blackberry/WebGLLayerWebKitThread.cpp (118364 => 118365)
--- trunk/Source/WebCore/platform/graphics/blackberry/WebGLLayerWebKitThread.cpp 2012-05-24 14:13:48 UTC (rev 118364)
+++ trunk/Source/WebCore/platform/graphics/blackberry/WebGLLayerWebKitThread.cpp 2012-05-24 14:20:05 UTC (rev 118365)
@@ -36,8 +36,6 @@
WebGLLayerWebKitThread::~WebGLLayerWebKitThread()
{
- if (m_frontBufferLock)
- pthread_mutex_destroy(m_frontBufferLock);
}
void WebGLLayerWebKitThread::setNeedsDisplay()
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes