mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-30 00:01:50 +00:00
Bug 815454 - Clean up Traverse/Unlink of web audio. r=smaug
This commit is contained in:
parent
0bda3d7c46
commit
6998222f29
@ -12,36 +12,26 @@
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
template <typename T>
|
||||
static void
|
||||
TraverseElements(nsCycleCollectionTraversalCallback& cb,
|
||||
const nsTArray<T>& array,
|
||||
const char* name)
|
||||
inline void
|
||||
ImplCycleCollectionTraverse(nsCycleCollectionTraversalCallback& aCallback,
|
||||
mozilla::dom::AudioNode::Output& aField,
|
||||
const char* aName,
|
||||
unsigned aFlags)
|
||||
{
|
||||
for (uint32_t i = 0, length = array.Length(); i < length; ++i) {
|
||||
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, name);
|
||||
AudioNode* node = array[i].get();
|
||||
cb.NoteXPCOMChild(node);
|
||||
}
|
||||
CycleCollectionNoteChild(aCallback, aField.mDestination.get(), aName, aFlags);
|
||||
}
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_CLASS(AudioNode)
|
||||
inline void
|
||||
ImplCycleCollectionTraverse(nsCycleCollectionTraversalCallback& aCallback,
|
||||
mozilla::dom::AudioNode::Input& aField,
|
||||
const char* aName,
|
||||
unsigned aFlags)
|
||||
{
|
||||
CycleCollectionNoteChild(aCallback, aField.mSource.get(), aName, aFlags);
|
||||
}
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(AudioNode)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mContext)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mInputs)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mOutputs)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(AudioNode)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mContext)
|
||||
TraverseElements(cb, tmp->mInputs, "mInputs[i]");
|
||||
TraverseElements(cb, tmp->mOutputs, "mOutputs[i]");
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_SCRIPT_OBJECTS
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_TRACE_WRAPPERCACHE(AudioNode)
|
||||
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_3(AudioNode,
|
||||
mContext, mInputs, mOutputs)
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTING_ADDREF(AudioNode)
|
||||
NS_IMPL_CYCLE_COLLECTING_RELEASE(AudioNode)
|
||||
|
@ -81,11 +81,6 @@ public:
|
||||
return ConvertibleToBool(mDestination && mInput != InvalidIndex);
|
||||
}
|
||||
|
||||
// Needed for the CC traversal
|
||||
AudioNode* get() const {
|
||||
return mDestination;
|
||||
}
|
||||
|
||||
nsRefPtr<AudioNode> mDestination;
|
||||
// This is an index into mDestination->mInputs which specifies the Input
|
||||
// object corresponding to this Output node.
|
||||
@ -109,11 +104,6 @@ public:
|
||||
return ConvertibleToBool(mSource && mOutput != InvalidIndex);
|
||||
}
|
||||
|
||||
// Needed for the CC traversal
|
||||
AudioNode* get() const {
|
||||
return mSource;
|
||||
}
|
||||
|
||||
nsRefPtr<AudioNode> mSource;
|
||||
// This is an index into mSource->mOutputs which specifies the Output
|
||||
// object corresponding to this Input node.
|
||||
@ -130,4 +120,3 @@ private:
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -10,17 +10,8 @@
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_CLASS(BiquadFilterNode)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(BiquadFilterNode, AudioNode)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mFrequency)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mQ)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mGain)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(BiquadFilterNode, AudioNode)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mFrequency)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mQ)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mGain)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||
NS_IMPL_CYCLE_COLLECTION_INHERITED_3(BiquadFilterNode, AudioNode,
|
||||
mFrequency, mQ, mGain)
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(BiquadFilterNode)
|
||||
NS_INTERFACE_MAP_END_INHERITING(AudioNode)
|
||||
|
@ -10,13 +10,8 @@
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_CLASS(DelayNode)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(DelayNode, AudioNode)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mDelay)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(DelayNode, AudioNode)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mDelay)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||
NS_IMPL_CYCLE_COLLECTION_INHERITED_1(DelayNode, AudioNode,
|
||||
mDelay)
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(DelayNode)
|
||||
NS_INTERFACE_MAP_END_INHERITING(AudioNode)
|
||||
|
@ -10,23 +10,13 @@
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_CLASS(DynamicsCompressorNode)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(DynamicsCompressorNode, AudioNode)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mThreshold)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mKnee)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mRatio)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mReduction)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mAttack)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mRelease)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(DynamicsCompressorNode, AudioNode)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mThreshold)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mKnee)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mRatio)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mReduction)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mAttack)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mRelease)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||
NS_IMPL_CYCLE_COLLECTION_INHERITED_6(DynamicsCompressorNode, AudioNode,
|
||||
mThreshold,
|
||||
mKnee,
|
||||
mRatio,
|
||||
mReduction,
|
||||
mAttack,
|
||||
mRelease)
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(DynamicsCompressorNode)
|
||||
NS_INTERFACE_MAP_END_INHERITING(AudioNode)
|
||||
|
@ -10,13 +10,8 @@
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_CLASS(GainNode)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(GainNode, AudioNode)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mGain)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(GainNode, AudioNode)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mGain)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||
NS_IMPL_CYCLE_COLLECTION_INHERITED_1(GainNode, AudioNode,
|
||||
mGain)
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(GainNode)
|
||||
NS_INTERFACE_MAP_END_INHERITING(AudioNode)
|
||||
|
@ -10,18 +10,6 @@
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_CLASS(PannerNode)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(PannerNode, AudioNode)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(PannerNode, AudioNode)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(PannerNode)
|
||||
NS_INTERFACE_MAP_END_INHERITING(AudioNode)
|
||||
|
||||
NS_IMPL_ADDREF_INHERITED(PannerNode, AudioNode)
|
||||
NS_IMPL_RELEASE_INHERITED(PannerNode, AudioNode)
|
||||
|
||||
PannerNode::PannerNode(AudioContext* aContext)
|
||||
: AudioNode(aContext)
|
||||
, mPanningModel(PanningModelEnum::HRTF)
|
||||
|
@ -36,9 +36,6 @@ class PannerNode : public AudioNode
|
||||
public:
|
||||
explicit PannerNode(AudioContext* aContext);
|
||||
|
||||
NS_DECL_ISUPPORTS_INHERITED
|
||||
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(PannerNode, AudioNode)
|
||||
|
||||
virtual JSObject* WrapObject(JSContext* aCx, JSObject* aScope,
|
||||
bool* aTriedToWrap);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user