bug 1224022 store a node type string pointer on engines and use that for memory reporting r?padenot
removing some off-main-thread usage of AudioNodeEngine::mNode.
MozReview-Commit-ID: 8Nikg4E61zM
--- a/dom/media/webaudio/AudioNodeEngine.h
+++ b/dom/media/webaudio/AudioNodeEngine.h
@@ -252,16 +252,17 @@ AudioBufferSumOfSquares(const float* aIn
class AudioNodeEngine
{
public:
// This should be compatible with AudioNodeStream::OutputChunks.
typedef AutoTArray<AudioBlock, 1> OutputChunks;
explicit AudioNodeEngine(dom::AudioNode* aNode)
: mNode(aNode)
+ , mNodeType(aNode ? aNode->NodeType() : nullptr)
, mInputCount(aNode ? aNode->NumberOfInputs() : 1)
, mOutputCount(aNode ? aNode->NumberOfOutputs() : 0)
{
MOZ_ASSERT(NS_IsMainThread());
MOZ_COUNT_CTOR(AudioNodeEngine);
}
virtual ~AudioNodeEngine()
{
@@ -389,23 +390,24 @@ public:
{
return aMallocSizeOf(this) + SizeOfExcludingThis(aMallocSizeOf);
}
void SizeOfIncludingThis(MallocSizeOf aMallocSizeOf,
AudioNodeSizes& aUsage) const
{
aUsage.mEngine = SizeOfIncludingThis(aMallocSizeOf);
+ aUsage.mNodeType = mNodeType;
if (mNode) {
aUsage.mDomNode = mNode->SizeOfIncludingThis(aMallocSizeOf);
- aUsage.mNodeType = mNode->NodeType();
}
}
private:
dom::AudioNode* mNode;
+ const char* const mNodeType;
const uint16_t mInputCount;
const uint16_t mOutputCount;
};
} // namespace mozilla
#endif /* MOZILLA_AUDIONODEENGINE_H_ */