Index: Source/modules/webaudio/AudioContext.h |
diff --git a/Source/modules/webaudio/AudioContext.h b/Source/modules/webaudio/AudioContext.h |
index c27545d6277e251ffca75569415f2811a4dce616..79f54c767867c7ad788df620cb62a8ed22835368 100644 |
--- a/Source/modules/webaudio/AudioContext.h |
+++ b/Source/modules/webaudio/AudioContext.h |
@@ -140,6 +140,9 @@ public: |
// Called periodically at the end of each render quantum to dereference finished source nodes. |
void derefFinishedSourceNodes(); |
+#if ENABLE(OILPAN) |
+ void registerLiveAudioSummingJunction(AudioSummingJunction&); |
+#endif |
// We schedule deletion of all marked nodes at the end of each realtime render quantum. |
void markForDeletion(AudioNode*); |
void deleteMarkedNodes(); |
@@ -276,6 +279,17 @@ private: |
// before deref(). |
Vector<RefPtr<AudioNode> > m_referencedNodes; |
+#if ENABLE(OILPAN) |
+ class AudioSummingJunctionDisposer { |
+ public: |
+ explicit AudioSummingJunctionDisposer(AudioSummingJunction& junction) : m_junction(junction) { } |
+ ~AudioSummingJunctionDisposer(); |
+ |
+ private: |
+ AudioSummingJunction& m_junction; |
+ }; |
+ HeapHashMap<WeakMember<AudioSummingJunction>, OwnPtr<AudioSummingJunctionDisposer> > m_liveAudioSummingJunctions; |
+#endif |
// Accumulate nodes which need to be deleted here. |
// This is copied to m_nodesToDelete at the end of a render cycle in handlePostRenderTasks(), where we're assured of a stable graph |
// state which will have no references to any of the nodes in m_nodesToDelete once the context lock is released |