Title: [94984] trunk/Source/WebCore
Revision
94984
Author
crog...@google.com
Date
2011-09-12 15:43:00 -0700 (Mon, 12 Sep 2011)

Log Message

Address lifetime issues in OfflineAudioDestinationNode
https://bugs.webkit.org/show_bug.cgi?id=67949

Reviewed by Kenneth Russell.

No new tests.  This does not change _javascript_ API.

* webaudio/OfflineAudioDestinationNode.cpp:
(WebCore::OfflineAudioDestinationNode::~OfflineAudioDestinationNode):
(WebCore::OfflineAudioDestinationNode::render):
(WebCore::OfflineAudioDestinationNode::notifyCompleteDispatch):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (94983 => 94984)


--- trunk/Source/WebCore/ChangeLog	2011-09-12 22:21:59 UTC (rev 94983)
+++ trunk/Source/WebCore/ChangeLog	2011-09-12 22:43:00 UTC (rev 94984)
@@ -1,3 +1,17 @@
+2011-09-12  Chris Rogers  <crog...@google.com>
+
+        Address lifetime issues in OfflineAudioDestinationNode
+        https://bugs.webkit.org/show_bug.cgi?id=67949
+
+        Reviewed by Kenneth Russell.
+
+        No new tests.  This does not change _javascript_ API.
+
+        * webaudio/OfflineAudioDestinationNode.cpp:
+        (WebCore::OfflineAudioDestinationNode::~OfflineAudioDestinationNode):
+        (WebCore::OfflineAudioDestinationNode::render):
+        (WebCore::OfflineAudioDestinationNode::notifyCompleteDispatch):
+
 2011-09-12  Jeff Timanus  <t...@chromium.org>
 
         [chromium]  Prevent a crash when tearing down an ImageBuffer that was not successfully initialized.

Modified: trunk/Source/WebCore/webaudio/OfflineAudioDestinationNode.cpp (94983 => 94984)


--- trunk/Source/WebCore/webaudio/OfflineAudioDestinationNode.cpp	2011-09-12 22:21:59 UTC (rev 94983)
+++ trunk/Source/WebCore/webaudio/OfflineAudioDestinationNode.cpp	2011-09-12 22:43:00 UTC (rev 94984)
@@ -52,6 +52,9 @@
 
 OfflineAudioDestinationNode::~OfflineAudioDestinationNode()
 {
+    if (m_renderThread)
+        waitForThreadCompletion(m_renderThread, 0);
+    
     uninitialize();
 }
 
@@ -143,6 +146,8 @@
     }
     
     // Our work is done. Let the AudioContext know.
+    // See corresponding deref() call in notifyCompleteDispatch().
+    ref();
     callOnMainThread(notifyCompleteDispatch, this);
 }
 
@@ -154,6 +159,7 @@
         return;
 
     destinationNode->notifyComplete();
+    destinationNode->deref();
 }
 
 void OfflineAudioDestinationNode::notifyComplete()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to