Title: [267604] trunk/Source/WebCore
Revision
267604
Author
cdu...@apple.com
Date
2020-09-25 16:02:59 -0700 (Fri, 25 Sep 2020)

Log Message

Drop AudioNode::setNodeType()
https://bugs.webkit.org/show_bug.cgi?id=216988

Reviewed by Eric Carlson.

Drop AudioNode::setNodeType() in favor of passing the NodeType to the AudioNode constructor.
This makes sure we never forget to set the type.

* Modules/webaudio/AnalyserNode.cpp:
(WebCore::AnalyserNode::AnalyserNode):
* Modules/webaudio/AudioBasicInspectorNode.cpp:
(WebCore::AudioBasicInspectorNode::AudioBasicInspectorNode):
* Modules/webaudio/AudioBasicInspectorNode.h:
* Modules/webaudio/AudioBasicProcessorNode.cpp:
(WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):
* Modules/webaudio/AudioBasicProcessorNode.h:
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
* Modules/webaudio/AudioDestinationNode.cpp:
(WebCore::AudioDestinationNode::AudioDestinationNode):
* Modules/webaudio/AudioNode.cpp:
(WebCore::convertEnumerationToString):
(WebCore::AudioNode::AudioNode):
(WebCore::AudioNode::printNodeCounts):
* Modules/webaudio/AudioNode.h:
(WebCore::AudioNode::context):
(WebCore::AudioNode::context const):
(WebCore::AudioNode::nodeType const):
* Modules/webaudio/AudioScheduledSourceNode.cpp:
(WebCore::AudioScheduledSourceNode::AudioScheduledSourceNode):
* Modules/webaudio/AudioScheduledSourceNode.h:
* Modules/webaudio/BiquadFilterNode.cpp:
(WebCore::BiquadFilterNode::BiquadFilterNode):
* Modules/webaudio/ChannelMergerNode.cpp:
(WebCore::ChannelMergerNode::ChannelMergerNode):
* Modules/webaudio/ChannelSplitterNode.cpp:
(WebCore::ChannelSplitterNode::ChannelSplitterNode):
* Modules/webaudio/ConstantSourceNode.cpp:
(WebCore::ConstantSourceNode::ConstantSourceNode):
* Modules/webaudio/ConvolverNode.cpp:
(WebCore::ConvolverNode::ConvolverNode):
* Modules/webaudio/DelayNode.cpp:
(WebCore::DelayNode::DelayNode):
* Modules/webaudio/DynamicsCompressorNode.cpp:
(WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
* Modules/webaudio/GainNode.cpp:
(WebCore::GainNode::GainNode):
* Modules/webaudio/IIRFilterNode.cpp:
(WebCore::IIRFilterNode::IIRFilterNode):
* Modules/webaudio/MediaElementAudioSourceNode.cpp:
(WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
* Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
(WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):
* Modules/webaudio/MediaStreamAudioSourceNode.cpp:
(WebCore::MediaStreamAudioSourceNode::MediaStreamAudioSourceNode):
* Modules/webaudio/OscillatorNode.cpp:
(WebCore::OscillatorNode::OscillatorNode):
* Modules/webaudio/PannerNode.cpp:
(WebCore::PannerNodeBase::PannerNodeBase):
(WebCore::PannerNode::PannerNode):
* Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::ScriptProcessorNode):
* Modules/webaudio/StereoPannerNode.cpp:
(WebCore::StereoPannerNode::StereoPannerNode):
* Modules/webaudio/WaveShaperNode.cpp:
(WebCore::WaveShaperNode::WaveShaperNode):
* Modules/webaudio/WebKitAudioPannerNode.cpp:
(WebCore::WebKitAudioPannerNode::WebKitAudioPannerNode):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (267603 => 267604)


--- trunk/Source/WebCore/ChangeLog	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/ChangeLog	2020-09-25 23:02:59 UTC (rev 267604)
@@ -1,3 +1,74 @@
+2020-09-25  Chris Dumez  <cdu...@apple.com>
+
+        Drop AudioNode::setNodeType()
+        https://bugs.webkit.org/show_bug.cgi?id=216988
+
+        Reviewed by Eric Carlson.
+
+        Drop AudioNode::setNodeType() in favor of passing the NodeType to the AudioNode constructor.
+        This makes sure we never forget to set the type.
+
+        * Modules/webaudio/AnalyserNode.cpp:
+        (WebCore::AnalyserNode::AnalyserNode):
+        * Modules/webaudio/AudioBasicInspectorNode.cpp:
+        (WebCore::AudioBasicInspectorNode::AudioBasicInspectorNode):
+        * Modules/webaudio/AudioBasicInspectorNode.h:
+        * Modules/webaudio/AudioBasicProcessorNode.cpp:
+        (WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):
+        * Modules/webaudio/AudioBasicProcessorNode.h:
+        * Modules/webaudio/AudioBufferSourceNode.cpp:
+        (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
+        * Modules/webaudio/AudioDestinationNode.cpp:
+        (WebCore::AudioDestinationNode::AudioDestinationNode):
+        * Modules/webaudio/AudioNode.cpp:
+        (WebCore::convertEnumerationToString):
+        (WebCore::AudioNode::AudioNode):
+        (WebCore::AudioNode::printNodeCounts):
+        * Modules/webaudio/AudioNode.h:
+        (WebCore::AudioNode::context):
+        (WebCore::AudioNode::context const):
+        (WebCore::AudioNode::nodeType const):
+        * Modules/webaudio/AudioScheduledSourceNode.cpp:
+        (WebCore::AudioScheduledSourceNode::AudioScheduledSourceNode):
+        * Modules/webaudio/AudioScheduledSourceNode.h:
+        * Modules/webaudio/BiquadFilterNode.cpp:
+        (WebCore::BiquadFilterNode::BiquadFilterNode):
+        * Modules/webaudio/ChannelMergerNode.cpp:
+        (WebCore::ChannelMergerNode::ChannelMergerNode):
+        * Modules/webaudio/ChannelSplitterNode.cpp:
+        (WebCore::ChannelSplitterNode::ChannelSplitterNode):
+        * Modules/webaudio/ConstantSourceNode.cpp:
+        (WebCore::ConstantSourceNode::ConstantSourceNode):
+        * Modules/webaudio/ConvolverNode.cpp:
+        (WebCore::ConvolverNode::ConvolverNode):
+        * Modules/webaudio/DelayNode.cpp:
+        (WebCore::DelayNode::DelayNode):
+        * Modules/webaudio/DynamicsCompressorNode.cpp:
+        (WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
+        * Modules/webaudio/GainNode.cpp:
+        (WebCore::GainNode::GainNode):
+        * Modules/webaudio/IIRFilterNode.cpp:
+        (WebCore::IIRFilterNode::IIRFilterNode):
+        * Modules/webaudio/MediaElementAudioSourceNode.cpp:
+        (WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
+        * Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
+        (WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):
+        * Modules/webaudio/MediaStreamAudioSourceNode.cpp:
+        (WebCore::MediaStreamAudioSourceNode::MediaStreamAudioSourceNode):
+        * Modules/webaudio/OscillatorNode.cpp:
+        (WebCore::OscillatorNode::OscillatorNode):
+        * Modules/webaudio/PannerNode.cpp:
+        (WebCore::PannerNodeBase::PannerNodeBase):
+        (WebCore::PannerNode::PannerNode):
+        * Modules/webaudio/ScriptProcessorNode.cpp:
+        (WebCore::ScriptProcessorNode::ScriptProcessorNode):
+        * Modules/webaudio/StereoPannerNode.cpp:
+        (WebCore::StereoPannerNode::StereoPannerNode):
+        * Modules/webaudio/WaveShaperNode.cpp:
+        (WebCore::WaveShaperNode::WaveShaperNode):
+        * Modules/webaudio/WebKitAudioPannerNode.cpp:
+        (WebCore::WebKitAudioPannerNode::WebKitAudioPannerNode):
+
 2020-09-24  Dean Jackson  <d...@apple.com>
 
         WebGL should use GLES in iOS apps running on Apple Silicon

Modified: trunk/Source/WebCore/Modules/webaudio/AnalyserNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/AnalyserNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AnalyserNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -65,9 +65,8 @@
 }
 
 AnalyserNode::AnalyserNode(BaseAudioContext& context)
-    : AudioBasicInspectorNode(context)
+    : AudioBasicInspectorNode(context, NodeTypeAnalyser)
 {
-    setNodeType(NodeTypeAnalyser);
     addOutput(2);
     
     initialize();

Modified: trunk/Source/WebCore/Modules/webaudio/AudioBasicInspectorNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/AudioBasicInspectorNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AudioBasicInspectorNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -36,10 +36,9 @@
 
 WTF_MAKE_ISO_ALLOCATED_IMPL(AudioBasicInspectorNode);
 
-AudioBasicInspectorNode::AudioBasicInspectorNode(BaseAudioContext& context)
-    : AudioNode(context)
+AudioBasicInspectorNode::AudioBasicInspectorNode(BaseAudioContext& context, NodeType type)
+    : AudioNode(context, type)
 {
-    setNodeType(NodeTypeBasicInspector);
     addInput();
 }
 

Modified: trunk/Source/WebCore/Modules/webaudio/AudioBasicInspectorNode.h (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/AudioBasicInspectorNode.h	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AudioBasicInspectorNode.h	2020-09-25 23:02:59 UTC (rev 267604)
@@ -34,7 +34,7 @@
 class AudioBasicInspectorNode : public AudioNode {
     WTF_MAKE_ISO_ALLOCATED(AudioBasicInspectorNode);
 public:
-    explicit AudioBasicInspectorNode(BaseAudioContext&);
+    AudioBasicInspectorNode(BaseAudioContext&, NodeType);
 
 protected:
     bool m_needAutomaticPull { false }; // When setting to true, AudioBasicInspectorNode will be pulled automatically by AudioContext before the end of each render quantum.

Modified: trunk/Source/WebCore/Modules/webaudio/AudioBasicProcessorNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/AudioBasicProcessorNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AudioBasicProcessorNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -39,8 +39,8 @@
 
 WTF_MAKE_ISO_ALLOCATED_IMPL(AudioBasicProcessorNode);
 
-AudioBasicProcessorNode::AudioBasicProcessorNode(BaseAudioContext& context)
-    : AudioNode(context)
+AudioBasicProcessorNode::AudioBasicProcessorNode(BaseAudioContext& context, NodeType type)
+    : AudioNode(context, type)
 {
     addInput();
     addOutput(1);

Modified: trunk/Source/WebCore/Modules/webaudio/AudioBasicProcessorNode.h (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/AudioBasicProcessorNode.h	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AudioBasicProcessorNode.h	2020-09-25 23:02:59 UTC (rev 267604)
@@ -37,7 +37,7 @@
 class AudioBasicProcessorNode : public AudioNode {
     WTF_MAKE_ISO_ALLOCATED(AudioBasicProcessorNode);
 public:
-    explicit AudioBasicProcessorNode(BaseAudioContext&);
+    AudioBasicProcessorNode(BaseAudioContext&, NodeType);
 
     // AudioNode
     void process(size_t framesToProcess) override;

Modified: trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -89,13 +89,11 @@
 }
 
 AudioBufferSourceNode::AudioBufferSourceNode(BaseAudioContext& context)
-    : AudioScheduledSourceNode(context)
+    : AudioScheduledSourceNode(context, NodeTypeAudioBufferSource)
     , m_detune(AudioParam::create(context, "detune"_s, 0.0, -FLT_MAX, FLT_MAX, AutomationRate::KRate, AutomationRateMode::Fixed))
     , m_playbackRate(AudioParam::create(context, "playbackRate"_s, 1.0, -FLT_MAX, FLT_MAX, AutomationRate::KRate, AutomationRateMode::Fixed))
     , m_grainDuration(DefaultGrainDuration)
 {
-    setNodeType(NodeTypeAudioBufferSource);
-
     // Default to mono.  A call to setBuffer() will set the number of output channels to that of the buffer.
     addOutput(1);
 

Modified: trunk/Source/WebCore/Modules/webaudio/AudioDestinationNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/AudioDestinationNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AudioDestinationNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -40,9 +40,8 @@
 WTF_MAKE_ISO_ALLOCATED_IMPL(AudioDestinationNode);
 
 AudioDestinationNode::AudioDestinationNode(BaseAudioContext& context)
-    : AudioNode(context)
+    : AudioNode(context, NodeTypeDestination)
 {
-    setNodeType(NodeTypeDestination);
     addInput();
 }
 

Modified: trunk/Source/WebCore/Modules/webaudio/AudioNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/AudioNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AudioNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -50,7 +50,6 @@
 String convertEnumerationToString(AudioNode::NodeType enumerationValue)
 {
     static const NeverDestroyed<String> values[] = {
-        MAKE_STATIC_STRING_IMPL("NodeTypeUnknown"),
         MAKE_STATIC_STRING_IMPL("NodeTypeDestination"),
         MAKE_STATIC_STRING_IMPL("NodeTypeOscillator"),
         MAKE_STATIC_STRING_IMPL("NodeTypeAudioBufferSource"),
@@ -68,34 +67,30 @@
         MAKE_STATIC_STRING_IMPL("NodeTypeAnalyser"),
         MAKE_STATIC_STRING_IMPL("NodeTypeDynamicsCompressor"),
         MAKE_STATIC_STRING_IMPL("NodeTypeWaveShaper"),
-        MAKE_STATIC_STRING_IMPL("NodeTypeBasicInspector"),
         MAKE_STATIC_STRING_IMPL("NodeTypeConstant"),
-        MAKE_STATIC_STRING_IMPL("NodeTypeStereo"),
-        MAKE_STATIC_STRING_IMPL("NodeTypeEnd"),
+        MAKE_STATIC_STRING_IMPL("NodeTypeStereoPanner"),
+        MAKE_STATIC_STRING_IMPL("NodeTypeIIRFilter"),
     };
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeUnknown) == 0, "AudioNode::NodeTypeUnknown is not 0 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeDestination) == 1, "AudioNode::NodeTypeDestination is not 1 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeOscillator) == 2, "AudioNode::NodeTypeOscillator is not 2 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeAudioBufferSource) == 3, "AudioNode::NodeTypeAudioBufferSource is not 3 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeMediaElementAudioSource) == 4, "AudioNode::NodeTypeMediaElementAudioSource is not 4 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeMediaStreamAudioDestination) == 5, "AudioNode::NodeTypeMediaStreamAudioDestination is not 5 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeMediaStreamAudioSource) == 6, "AudioNode::NodeTypeMediaStreamAudioSource is not 6 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeJavaScript) == 7, "AudioNode::NodeTypeJavaScript is not 7 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeBiquadFilter) == 8, "AudioNode::NodeTypeBiquadFilter is not 8 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypePanner) == 9, "AudioNode::NodeTypePanner is not 9 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeConvolver) == 10, "AudioNode::NodeTypeConvolver is not 10 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeDelay) == 11, "AudioNode::NodeTypeDelay is not 11 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeGain) == 12, "AudioNode::NodeTypeGain is not 12 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeChannelSplitter) == 13, "AudioNode::NodeTypeChannelSplitter is not 13 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeChannelMerger) == 14, "AudioNode::NodeTypeChannelMerger is not 14 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeAnalyser) == 15, "AudioNode::NodeTypeAnalyser is not 15 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeDynamicsCompressor) == 16, "AudioNode::NodeTypeDynamicsCompressor is not 16 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeWaveShaper) == 17, "AudioNode::NodeTypeWaveShaper is not 17 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeBasicInspector) == 18, "AudioNode::NodeTypeBasicInspector is not 18 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeConstant) == 19, "AudioNode::NodeTypeEnd is not 19 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeStereo) == 20, "AudioNode::NodeTypeStereo is not 20 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeIIRFilter) == 21, "AudioNode::NodeTypeIIRFilter is not 21 as expected");
-    static_assert(static_cast<size_t>(AudioNode::NodeTypeEnd) == 22, "AudioNode::NodeTypeConstant is not 22 as expected");
+    static_assert(static_cast<size_t>(AudioNode::NodeTypeDestination) == 0, "AudioNode::NodeTypeDestination is not 1 as expected");
+    static_assert(static_cast<size_t>(AudioNode::NodeTypeOscillator) == 1, "AudioNode::NodeTypeOscillator is not 2 as expected");
+    static_assert(static_cast<size_t>(AudioNode::NodeTypeAudioBufferSource) == 2, "AudioNode::NodeTypeAudioBufferSource is not 3 as expected");
+    static_assert(static_cast<size_t>(AudioNode::NodeTypeMediaElementAudioSource) == 3, "AudioNode::NodeTypeMediaElementAudioSource is not 4 as expected");
+    static_assert(static_cast<size_t>(AudioNode::NodeTypeMediaStreamAudioDestination) == 4, "AudioNode::NodeTypeMediaStreamAudioDestination is not 5 as expected");
+    static_assert(static_cast<size_t>(AudioNode::NodeTypeMediaStreamAudioSource) == 5, "AudioNode::NodeTypeMediaStreamAudioSource is not 6 as expected");
+    static_assert(static_cast<size_t>(AudioNode::NodeTypeJavaScript) == 6, "AudioNode::NodeTypeJavaScript is not 7 as expected");
+    static_assert(static_cast<size_t>(AudioNode::NodeTypeBiquadFilter) == 7, "AudioNode::NodeTypeBiquadFilter is not 8 as expected");
+    static_assert(static_cast<size_t>(AudioNode::NodeTypePanner) == 8, "AudioNode::NodeTypePanner is not 9 as expected");
+    static_assert(static_cast<size_t>(AudioNode::NodeTypeConvolver) == 9, "AudioNode::NodeTypeConvolver is not 10 as expected");
+    static_assert(static_cast<size_t>(AudioNode::NodeTypeDelay) == 10, "AudioNode::NodeTypeDelay is not 11 as expected");
+    static_assert(static_cast<size_t>(AudioNode::NodeTypeGain) == 11, "AudioNode::NodeTypeGain is not 12 as expected");
+    static_assert(static_cast<size_t>(AudioNode::NodeTypeChannelSplitter) == 12, "AudioNode::NodeTypeChannelSplitter is not 13 as expected");
+    static_assert(static_cast<size_t>(AudioNode::NodeTypeChannelMerger) == 13, "AudioNode::NodeTypeChannelMerger is not 14 as expected");
+    static_assert(static_cast<size_t>(AudioNode::NodeTypeAnalyser) == 14, "AudioNode::NodeTypeAnalyser is not 15 as expected");
+    static_assert(static_cast<size_t>(AudioNode::NodeTypeDynamicsCompressor) == 15, "AudioNode::NodeTypeDynamicsCompressor is not 16 as expected");
+    static_assert(static_cast<size_t>(AudioNode::NodeTypeWaveShaper) == 16, "AudioNode::NodeTypeWaveShaper is not 17 as expected");
+    static_assert(static_cast<size_t>(AudioNode::NodeTypeConstant) == 17, "AudioNode::NodeTypeConstant is not 19 as expected");
+    static_assert(static_cast<size_t>(AudioNode::NodeTypeStereoPanner) == 18, "AudioNode::NodeTypeStereoPanner is not 20 as expected");
+    static_assert(static_cast<size_t>(AudioNode::NodeTypeIIRFilter) == 19, "AudioNode::NodeTypeIIRFilter is not 21 as expected");
 
     ASSERT(static_cast<size_t>(enumerationValue) < WTF_ARRAY_LENGTH(values));
     
@@ -102,8 +97,9 @@
     return values[static_cast<size_t>(enumerationValue)];
 }
 
-AudioNode::AudioNode(BaseAudioContext& context)
-    : m_context(context)
+AudioNode::AudioNode(BaseAudioContext& context, NodeType type)
+    : m_nodeType(type)
+    , m_context(context)
 #if !RELEASE_LOG_DISABLED
     , m_logger(context.logger())
     , m_logIdentifier(context.nextAudioNodeLogIdentifier())
@@ -112,6 +108,7 @@
     ALWAYS_LOG(LOGIDENTIFIER);
 
 #if DEBUG_AUDIONODE_REFERENCES
+    ++s_nodeCount[type];
     if (!s_isNodeCountInitialized) {
         s_isNodeCountInitialized = true;
         atexit(AudioNode::printNodeCounts);
@@ -140,18 +137,6 @@
     m_isInitialized = false;
 }
 
-void AudioNode::setNodeType(NodeType type)
-{
-    ASSERT(isMainThread());
-    ALWAYS_LOG(LOGIDENTIFIER, type);
-
-    m_nodeType = type;
-
-#if DEBUG_AUDIONODE_REFERENCES
-    ++s_nodeCount[type];
-#endif
-}
-
 void AudioNode::lazyInitialize()
 {
     if (!isInitialized())
@@ -723,7 +708,7 @@
 #if DEBUG_AUDIONODE_REFERENCES
 
 bool AudioNode::s_isNodeCountInitialized = false;
-int AudioNode::s_nodeCount[NodeTypeEnd];
+int AudioNode::s_nodeCount[NodeTypeLast + 1];
 
 void AudioNode::printNodeCounts()
 {
@@ -732,7 +717,7 @@
     fprintf(stderr, "AudioNode: reference counts\n");
     fprintf(stderr, "===========================\n");
 
-    for (unsigned i = 0; i < NodeTypeEnd; ++i)
+    for (unsigned i = 0; i <= NodeTypeLast; ++i)
         fprintf(stderr, "%d: %d\n", i, s_nodeCount[i]);
 
     fprintf(stderr, "===========================\n\n\n");

Modified: trunk/Source/WebCore/Modules/webaudio/AudioNode.h (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/AudioNode.h	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AudioNode.h	2020-09-25 23:02:59 UTC (rev 267604)
@@ -59,16 +59,7 @@
     WTF_MAKE_NONCOPYABLE(AudioNode);
     WTF_MAKE_ISO_ALLOCATED(AudioNode);
 public:
-    explicit AudioNode(BaseAudioContext&);
-    virtual ~AudioNode();
-
-    BaseAudioContext& context() { return m_context.get(); }
-    const BaseAudioContext& context() const { return m_context.get(); }
-
-    Variant<RefPtr<BaseAudioContext>, RefPtr<WebKitAudioContext>> contextForBindings() const;
-
     enum NodeType {
-        NodeTypeUnknown,
         NodeTypeDestination,
         NodeTypeOscillator,
         NodeTypeAudioBufferSource,
@@ -86,15 +77,21 @@
         NodeTypeAnalyser,
         NodeTypeDynamicsCompressor,
         NodeTypeWaveShaper,
-        NodeTypeBasicInspector,
         NodeTypeConstant,
-        NodeTypeStereo,
+        NodeTypeStereoPanner,
         NodeTypeIIRFilter,
-        NodeTypeEnd
+        NodeTypeLast = NodeTypeIIRFilter
     };
 
+    AudioNode(BaseAudioContext&, NodeType);
+    virtual ~AudioNode();
+
+    BaseAudioContext& context() { return m_context.get(); }
+    const BaseAudioContext& context() const { return m_context.get(); }
+
+    Variant<RefPtr<BaseAudioContext>, RefPtr<WebKitAudioContext>> contextForBindings() const;
+
     NodeType nodeType() const { return m_nodeType; }
-    void setNodeType(NodeType);
 
     // Can be called from main thread or context's audio thread.
     void ref();
@@ -235,7 +232,7 @@
     ScriptExecutionContext* scriptExecutionContext() const final;
 
     volatile bool m_isInitialized { false };
-    NodeType m_nodeType { NodeTypeUnknown };
+    NodeType m_nodeType;
     Ref<BaseAudioContext> m_context;
 
     Vector<std::unique_ptr<AudioNodeInput>> m_inputs;
@@ -254,7 +251,7 @@
 
 #if DEBUG_AUDIONODE_REFERENCES
     static bool s_isNodeCountInitialized;
-    static int s_nodeCount[NodeTypeEnd];
+    static int s_nodeCount[NodeTypeLast + 1];
 #endif
 
     void refEventTarget() override { ref(); }

Modified: trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -47,8 +47,8 @@
 
 WTF_MAKE_ISO_ALLOCATED_IMPL(AudioScheduledSourceNode);
 
-AudioScheduledSourceNode::AudioScheduledSourceNode(BaseAudioContext& context)
-    : AudioNode(context)
+AudioScheduledSourceNode::AudioScheduledSourceNode(BaseAudioContext& context, NodeType type)
+    : AudioNode(context, type)
     , ActiveDOMObject(context.scriptExecutionContext())
 {
     suspendIfNeeded();

Modified: trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.h (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.h	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.h	2020-09-25 23:02:59 UTC (rev 267604)
@@ -53,7 +53,7 @@
         FINISHED_STATE = 3
     };
     
-    explicit AudioScheduledSourceNode(BaseAudioContext&);
+    AudioScheduledSourceNode(BaseAudioContext&, NodeType);
 
     ExceptionOr<void> startLater(double when);
     ExceptionOr<void> stopLater(double when);

Modified: trunk/Source/WebCore/Modules/webaudio/BiquadFilterNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/BiquadFilterNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/BiquadFilterNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -56,10 +56,8 @@
 }
 
 BiquadFilterNode::BiquadFilterNode(BaseAudioContext& context)
-    : AudioBasicProcessorNode(context)
+    : AudioBasicProcessorNode(context, NodeTypeBiquadFilter)
 {
-    setNodeType(NodeTypeBiquadFilter);
-
     // Initially setup as lowpass filter.
     m_processor = makeUnique<BiquadProcessor>(context, context.sampleRate(), 1, false);
 

Modified: trunk/Source/WebCore/Modules/webaudio/ChannelMergerNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/ChannelMergerNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/ChannelMergerNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -61,10 +61,8 @@
 }
 
 ChannelMergerNode::ChannelMergerNode(BaseAudioContext& context, unsigned numberOfInputs)
-    : AudioNode(context)
+    : AudioNode(context, NodeTypeChannelMerger)
 {
-    setNodeType(NodeTypeChannelMerger);
-
     // Create the requested number of inputs.
     for (unsigned i = 0; i < numberOfInputs; ++i)
         addInput();

Modified: trunk/Source/WebCore/Modules/webaudio/ChannelSplitterNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/ChannelSplitterNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/ChannelSplitterNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -57,10 +57,8 @@
 }
 
 ChannelSplitterNode::ChannelSplitterNode(BaseAudioContext& context, unsigned numberOfOutputs)
-    : AudioNode(context)
+    : AudioNode(context, NodeTypeChannelSplitter)
 {
-    setNodeType(NodeTypeChannelSplitter);
-
     addInput();
 
     // Create a fixed number of outputs (able to handle the maximum number of channels fed to an input).

Modified: trunk/Source/WebCore/Modules/webaudio/ConstantSourceNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/ConstantSourceNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/ConstantSourceNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -54,11 +54,10 @@
 }
 
 ConstantSourceNode::ConstantSourceNode(BaseAudioContext& context, float offset)
-    : AudioScheduledSourceNode(context)
+    : AudioScheduledSourceNode(context, NodeTypeConstant)
     , m_offset(AudioParam::create(context, "offset"_s, offset, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
     , m_sampleAccurateValues(AudioUtilities::renderQuantumSize)
 {
-    setNodeType(NodeTypeConstant);
     addOutput(1);
     initialize();
 }

Modified: trunk/Source/WebCore/Modules/webaudio/ConvolverNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/ConvolverNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/ConvolverNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -78,10 +78,8 @@
 }
 
 ConvolverNode::ConvolverNode(BaseAudioContext& context)
-    : AudioNode(context)
+    : AudioNode(context, NodeTypeConvolver)
 {
-    setNodeType(NodeTypeConvolver);
-
     addInput();
     addOutput(1);
     

Modified: trunk/Source/WebCore/Modules/webaudio/DelayNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/DelayNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/DelayNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -39,9 +39,8 @@
 constexpr double maximumAllowedDelayTime = 180;
 
 inline DelayNode::DelayNode(BaseAudioContext& context, double maxDelayTime)
-    : AudioBasicProcessorNode(context)
+    : AudioBasicProcessorNode(context, NodeTypeDelay)
 {
-    setNodeType(NodeTypeDelay);
     m_processor = makeUnique<DelayProcessor>(context, context.sampleRate(), 1, maxDelayTime);
 
     // Initialize so that AudioParams can be processed.

Modified: trunk/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -62,7 +62,7 @@
 }
 
 DynamicsCompressorNode::DynamicsCompressorNode(BaseAudioContext& context, const DynamicsCompressorOptions& options)
-    : AudioNode(context)
+    : AudioNode(context, NodeTypeDynamicsCompressor)
     , m_threshold(AudioParam::create(context, "threshold"_s, options.threshold, -100, 0, AutomationRate::KRate, AutomationRateMode::Fixed))
     , m_knee(AudioParam::create(context, "knee"_s, options.knee, 0, 40, AutomationRate::KRate, AutomationRateMode::Fixed))
     , m_ratio(AudioParam::create(context, "ratio"_s, options.ratio, 1, 20, AutomationRate::KRate, AutomationRateMode::Fixed))
@@ -69,8 +69,6 @@
     , m_attack(AudioParam::create(context, "attack"_s, options.attack, 0, 1, AutomationRate::KRate, AutomationRateMode::Fixed))
     , m_release(AudioParam::create(context, "release"_s, options.release, 0, 1, AutomationRate::KRate, AutomationRateMode::Fixed))
 {
-    setNodeType(NodeTypeDynamicsCompressor);
-
     addInput();
     addOutput(defaultNumberOfOutputChannels);
 

Modified: trunk/Source/WebCore/Modules/webaudio/GainNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/GainNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/GainNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -57,12 +57,10 @@
 }
 
 GainNode::GainNode(BaseAudioContext& context)
-    : AudioNode(context)
+    : AudioNode(context, NodeTypeGain)
     , m_sampleAccurateGainValues(AudioUtilities::renderQuantumSize) // FIXME: can probably share temp buffer in context
     , m_gain(AudioParam::create(context, "gain"_s, 1.0, -FLT_MAX, FLT_MAX, AutomationRate::ARate))
 {
-    setNodeType(NodeTypeGain);
-
     addInput();
     addOutput(1);
 

Modified: trunk/Source/WebCore/Modules/webaudio/IIRFilterNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/IIRFilterNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/IIRFilterNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -116,9 +116,8 @@
 }
 
 IIRFilterNode::IIRFilterNode(BaseAudioContext& context, const Vector<double>& feedforward, const Vector<double>& feedback, bool isFilterStable)
-    : AudioBasicProcessorNode(context)
+    : AudioBasicProcessorNode(context, NodeTypeIIRFilter)
 {
-    setNodeType(NodeTypeIIRFilter);
     m_processor = makeUnique<IIRProcessor>(context.sampleRate(), 1, feedforward, feedback, isFilterStable);
 
     initialize();

Modified: trunk/Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -66,11 +66,9 @@
 }
 
 MediaElementAudioSourceNode::MediaElementAudioSourceNode(BaseAudioContext& context, Ref<HTMLMediaElement>&& mediaElement)
-    : AudioNode(context)
+    : AudioNode(context, NodeTypeMediaElementAudioSource)
     , m_mediaElement(WTFMove(mediaElement))
 {
-    setNodeType(NodeTypeMediaElementAudioSource);
-
     // Default to stereo. This could change depending on what the media element .src is set to.
     addOutput(2);
 

Modified: trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioDestinationNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioDestinationNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioDestinationNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -56,11 +56,10 @@
 }
 
 MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode(BaseAudioContext& context)
-    : AudioBasicInspectorNode(context)
+    : AudioBasicInspectorNode(context, NodeTypeMediaStreamAudioDestination)
     , m_source(MediaStreamAudioSource::create(context.sampleRate()))
     , m_stream(MediaStream::create(*context.document(), MediaStreamPrivate::create(context.document()->logger(), m_source.copyRef())))
 {
-    setNodeType(NodeTypeMediaStreamAudioDestination);
     initialize();
 }
 

Modified: trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -71,12 +71,10 @@
 }
 
 MediaStreamAudioSourceNode::MediaStreamAudioSourceNode(BaseAudioContext& context, MediaStream& mediaStream, MediaStreamTrack& audioTrack)
-    : AudioNode(context)
+    : AudioNode(context, NodeTypeMediaStreamAudioSource)
     , m_mediaStream(mediaStream)
     , m_audioTrack(audioTrack)
 {
-    setNodeType(NodeTypeMediaStreamAudioSource);
-    
     AudioSourceProvider* audioSourceProvider = m_audioTrack->audioSourceProvider();
     ASSERT(audioSourceProvider);
 

Modified: trunk/Source/WebCore/Modules/webaudio/OscillatorNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/OscillatorNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/OscillatorNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -92,14 +92,12 @@
 }
 
 OscillatorNode::OscillatorNode(BaseAudioContext& context, const OscillatorOptions& options)
-    : AudioScheduledSourceNode(context)
+    : AudioScheduledSourceNode(context, NodeTypeOscillator)
     , m_frequency(AudioParam::create(context, "frequency"_s, options.frequency, -context.sampleRate() / 2, context.sampleRate() / 2, AutomationRate::ARate))
     , m_detune(AudioParam::create(context, "detune"_s, options.detune, -1200 * log2f(std::numeric_limits<float>::max()), 1200 * log2f(std::numeric_limits<float>::max()), AutomationRate::ARate))
     , m_phaseIncrements(AudioUtilities::renderQuantumSize)
     , m_detuneValues(AudioUtilities::renderQuantumSize)
 {
-    setNodeType(NodeTypeOscillator);
-    
     // An oscillator is always mono.
     addOutput(1);
     initialize();

Modified: trunk/Source/WebCore/Modules/webaudio/PannerNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/PannerNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/PannerNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -51,7 +51,7 @@
 }
 
 PannerNodeBase::PannerNodeBase(BaseAudioContext& context)
-    : AudioNode(context)
+    : AudioNode(context, NodeTypePanner)
 {
 }
 
@@ -99,8 +99,6 @@
     // Load the HRTF database asynchronously so we don't block the _javascript_ thread while creating the HRTF database.
     , m_hrtfDatabaseLoader(HRTFDatabaseLoader::createAndLoadAsynchronouslyIfNecessary(context.sampleRate()))
 {
-    setNodeType(NodeTypePanner);
-
     setDistanceModel(options.distanceModel);
     setConeInnerAngle(options.coneInnerAngle);
     setConeOuterAngle(options.coneOuterAngle);

Modified: trunk/Source/WebCore/Modules/webaudio/ScriptProcessorNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/ScriptProcessorNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/ScriptProcessorNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -52,7 +52,7 @@
 }
 
 ScriptProcessorNode::ScriptProcessorNode(BaseAudioContext& context, size_t bufferSize, unsigned numberOfInputChannels, unsigned numberOfOutputChannels)
-    : AudioNode(context)
+    : AudioNode(context, NodeTypeJavaScript)
     , ActiveDOMObject(context.scriptExecutionContext())
     , m_bufferSize(bufferSize)
     , m_numberOfInputChannels(numberOfInputChannels)
@@ -65,7 +65,6 @@
 
     ASSERT(numberOfInputChannels <= AudioContext::maxNumberOfChannels());
 
-    setNodeType(NodeTypeJavaScript);
     initializeDefaultNodeOptions(numberOfInputChannels, ChannelCountMode::Explicit, ChannelInterpretation::Speakers);
     addInput();
     addOutput(numberOfOutputChannels);

Modified: trunk/Source/WebCore/Modules/webaudio/StereoPannerNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/StereoPannerNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/StereoPannerNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -56,12 +56,10 @@
 }
 
 StereoPannerNode::StereoPannerNode(BaseAudioContext& context, float pan)
-    : AudioNode(context)
+    : AudioNode(context, NodeTypeStereoPanner)
     , m_pan(AudioParam::create(context, "pan"_s, pan, -1, 1, AutomationRate::ARate))
     , m_sampleAccurateValues(AudioUtilities::renderQuantumSize)
 {
-    setNodeType(NodeTypeStereo);
-    
     addInput();
     addOutput(2);
     

Modified: trunk/Source/WebCore/Modules/webaudio/WaveShaperNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/WaveShaperNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/WaveShaperNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -70,9 +70,8 @@
 }
 
 WaveShaperNode::WaveShaperNode(BaseAudioContext& context)
-    : AudioBasicProcessorNode(context)
+    : AudioBasicProcessorNode(context, NodeTypeWaveShaper)
 {
-    setNodeType(NodeTypeWaveShaper);
     m_processor = makeUnique<WaveShaperProcessor>(context.sampleRate(), 1);
 
     initialize();

Modified: trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.cpp (267603 => 267604)


--- trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.cpp	2020-09-25 22:54:55 UTC (rev 267603)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.cpp	2020-09-25 23:02:59 UTC (rev 267604)
@@ -51,7 +51,6 @@
 WebKitAudioPannerNode::WebKitAudioPannerNode(WebKitAudioContext& context)
     : PannerNodeBase(context)
 {
-    setNodeType(NodeTypePanner);
     initializeDefaultNodeOptions(2, ChannelCountMode::ClampedMax, ChannelInterpretation::Speakers);
 
     // Load the HRTF database asynchronously so we don't block the _javascript_ thread while creating the HRTF database.
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to