Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: Source/modules/webaudio/AudioContext.cpp

Issue 468473002: AudioContext::removeAutomaticPullNode() should be called in AudioNode::dispose() (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | Source/modules/webaudio/AudioNode.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010, Google Inc. All rights reserved. 2 * Copyright (C) 2010, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 785 matching lines...) Expand 10 before | Expand all | Expand 10 after
796 #else 796 #else
797 797
798 void AudioContext::markForDeletion(AudioNode* node) 798 void AudioContext::markForDeletion(AudioNode* node)
799 { 799 {
800 ASSERT(isGraphOwner()); 800 ASSERT(isGraphOwner());
801 801
802 if (!isInitialized()) 802 if (!isInitialized())
803 m_nodesToDelete.append(node); 803 m_nodesToDelete.append(node);
804 else 804 else
805 m_nodesMarkedForDeletion.append(node); 805 m_nodesMarkedForDeletion.append(node);
806
807 // This is probably the best time for us to remove the node from automatic p ull list,
808 // since all connections are gone and we hold the graph lock. Then when hand lePostRenderTasks()
809 // gets a chance to schedule the deletion work, updateAutomaticPullNodes() a lso gets a chance to
810 // modify m_renderingAutomaticPullNodes.
811 removeAutomaticPullNode(node);
812 } 806 }
813 807
814 void AudioContext::scheduleNodeDeletion() 808 void AudioContext::scheduleNodeDeletion()
815 { 809 {
816 bool isGood = isInitialized() && isGraphOwner(); 810 bool isGood = isInitialized() && isGraphOwner();
817 ASSERT(isGood); 811 ASSERT(isGood);
818 if (!isGood) 812 if (!isGood)
819 return; 813 return;
820 814
821 // Make sure to call deleteMarkedNodes() on main thread. 815 // Make sure to call deleteMarkedNodes() on main thread.
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
1013 visitor->trace(m_referencedNodes); 1007 visitor->trace(m_referencedNodes);
1014 visitor->trace(m_liveNodes); 1008 visitor->trace(m_liveNodes);
1015 visitor->trace(m_liveAudioSummingJunctions); 1009 visitor->trace(m_liveAudioSummingJunctions);
1016 #endif 1010 #endif
1017 EventTargetWithInlineData::trace(visitor); 1011 EventTargetWithInlineData::trace(visitor);
1018 } 1012 }
1019 1013
1020 } // namespace blink 1014 } // namespace blink
1021 1015
1022 #endif // ENABLE(WEB_AUDIO) 1016 #endif // ENABLE(WEB_AUDIO)
OLDNEW
« no previous file with comments | « no previous file | Source/modules/webaudio/AudioNode.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698