Title: [101265] trunk/Source/WebCore
- Revision
- 101265
- Author
- jer.no...@apple.com
- Date
- 2011-11-28 10:50:08 -0800 (Mon, 28 Nov 2011)
Log Message
WebAudio: AudioContext::uninitialize() can caused AudioContext deletion before deleting marked nodes.
https://bugs.webkit.org/show_bug.cgi?id=72755
Reviewed by Eric Carlson.
No new tests.
Protect AudioContext from being deleted before uninitialize() returns. Fixes an assertion in ~AudioContext() and
a potential source of leaks.
* webaudio/AudioContext.cpp:
(WebCore::AudioContext::uninitialize):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (101264 => 101265)
--- trunk/Source/WebCore/ChangeLog 2011-11-28 18:28:00 UTC (rev 101264)
+++ trunk/Source/WebCore/ChangeLog 2011-11-28 18:50:08 UTC (rev 101265)
@@ -1,3 +1,18 @@
+2011-11-28 Jer Noble <jer.no...@apple.com>
+
+ WebAudio: AudioContext::uninitialize() can caused AudioContext deletion before deleting marked nodes.
+ https://bugs.webkit.org/show_bug.cgi?id=72755
+
+ Reviewed by Eric Carlson.
+
+ No new tests.
+
+ Protect AudioContext from being deleted before uninitialize() returns. Fixes an assertion in ~AudioContext() and
+ a potential source of leaks.
+
+ * webaudio/AudioContext.cpp:
+ (WebCore::AudioContext::uninitialize):
+
2011-11-28 Andreas Kling <kl...@webkit.org>
InspectorCSSAgent: Remove unused function inlineStyleElement().
Modified: trunk/Source/WebCore/webaudio/AudioContext.cpp (101264 => 101265)
--- trunk/Source/WebCore/webaudio/AudioContext.cpp 2011-11-28 18:28:00 UTC (rev 101264)
+++ trunk/Source/WebCore/webaudio/AudioContext.cpp 2011-11-28 18:50:08 UTC (rev 101265)
@@ -215,7 +215,10 @@
{
ASSERT(isMainThread());
- if (m_isInitialized) {
+ if (m_isInitialized) {
+ // Protect this object from being deleted before we finish uninitializing.
+ RefPtr<AudioContext> protect(this);
+
// This stops the audio thread and all audio rendering.
m_destinationNode->uninitialize();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes