⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 267609 in webkit


Ignore:
Timestamp:
Sep 25, 2020, 5:01:58 PM (6 years ago)
Author:
Chris Dumez
Message:

Avoid having to call context.lazyInitialize() in every AudioNode factory function
https://bugs.webkit.org/show_bug.cgi?id=216989

Reviewed by Darin Adler.

Avoid having to call context.lazyInitialize() in every AudioNode factory function.
Replace all these calls with a single one inside the AudioNode constructor.

No new tests, no Web facing behavior change.

  • Modules/webaudio/AnalyserNode.cpp:

(WebCore::AnalyserNode::create):

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::create):

  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::AudioNode):

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::lazyInitialize):

  • Modules/webaudio/BiquadFilterNode.cpp:

(WebCore::BiquadFilterNode::create):

  • Modules/webaudio/ChannelMergerNode.cpp:

(WebCore::ChannelMergerNode::create):

  • Modules/webaudio/ChannelSplitterNode.cpp:

(WebCore::ChannelSplitterNode::create):

  • Modules/webaudio/ConstantSourceNode.cpp:

(WebCore::ConstantSourceNode::create):

  • Modules/webaudio/ConvolverNode.cpp:

(WebCore::ConvolverNode::create):

  • Modules/webaudio/DelayNode.cpp:

(WebCore::DelayNode::create):

  • Modules/webaudio/DynamicsCompressorNode.cpp:

(WebCore::DynamicsCompressorNode::create):

  • Modules/webaudio/GainNode.cpp:

(WebCore::GainNode::create):

  • Modules/webaudio/IIRFilterNode.cpp:

(WebCore::IIRFilterNode::create):

  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::create):

  • Modules/webaudio/MediaStreamAudioDestinationNode.cpp:

(WebCore::MediaStreamAudioDestinationNode::create):

  • Modules/webaudio/MediaStreamAudioSourceNode.cpp:

(WebCore::MediaStreamAudioSourceNode::create):

  • Modules/webaudio/OscillatorNode.cpp:

(WebCore::OscillatorNode::create):

  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::create):

  • Modules/webaudio/PeriodicWave.cpp:

(WebCore::PeriodicWave::create):

  • Modules/webaudio/StereoPannerNode.cpp:

(WebCore::StereoPannerNode::create):

  • Modules/webaudio/WaveShaperNode.cpp:

(WebCore::WaveShaperNode::create):

Location:
trunk/Source/WebCore
Files:
22 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r267605 r267609  
     12020-09-25  Chris Dumez  <cdumez@apple.com>
     2
     3        Avoid having to call context.lazyInitialize() in every AudioNode factory function
     4        https://bugs.webkit.org/show_bug.cgi?id=216989
     5
     6        Reviewed by Darin Adler.
     7
     8        Avoid having to call context.lazyInitialize() in every AudioNode factory function.
     9        Replace all these calls with a single one inside the AudioNode constructor.
     10
     11        No new tests, no Web facing behavior change.
     12
     13        * Modules/webaudio/AnalyserNode.cpp:
     14        (WebCore::AnalyserNode::create):
     15        * Modules/webaudio/AudioBufferSourceNode.cpp:
     16        (WebCore::AudioBufferSourceNode::create):
     17        * Modules/webaudio/AudioNode.cpp:
     18        (WebCore::AudioNode::AudioNode):
     19        * Modules/webaudio/BaseAudioContext.cpp:
     20        (WebCore::BaseAudioContext::lazyInitialize):
     21        * Modules/webaudio/BiquadFilterNode.cpp:
     22        (WebCore::BiquadFilterNode::create):
     23        * Modules/webaudio/ChannelMergerNode.cpp:
     24        (WebCore::ChannelMergerNode::create):
     25        * Modules/webaudio/ChannelSplitterNode.cpp:
     26        (WebCore::ChannelSplitterNode::create):
     27        * Modules/webaudio/ConstantSourceNode.cpp:
     28        (WebCore::ConstantSourceNode::create):
     29        * Modules/webaudio/ConvolverNode.cpp:
     30        (WebCore::ConvolverNode::create):
     31        * Modules/webaudio/DelayNode.cpp:
     32        (WebCore::DelayNode::create):
     33        * Modules/webaudio/DynamicsCompressorNode.cpp:
     34        (WebCore::DynamicsCompressorNode::create):
     35        * Modules/webaudio/GainNode.cpp:
     36        (WebCore::GainNode::create):
     37        * Modules/webaudio/IIRFilterNode.cpp:
     38        (WebCore::IIRFilterNode::create):
     39        * Modules/webaudio/MediaElementAudioSourceNode.cpp:
     40        (WebCore::MediaElementAudioSourceNode::create):
     41        * Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
     42        (WebCore::MediaStreamAudioDestinationNode::create):
     43        * Modules/webaudio/MediaStreamAudioSourceNode.cpp:
     44        (WebCore::MediaStreamAudioSourceNode::create):
     45        * Modules/webaudio/OscillatorNode.cpp:
     46        (WebCore::OscillatorNode::create):
     47        * Modules/webaudio/PannerNode.cpp:
     48        (WebCore::PannerNode::create):
     49        * Modules/webaudio/PeriodicWave.cpp:
     50        (WebCore::PeriodicWave::create):
     51        * Modules/webaudio/StereoPannerNode.cpp:
     52        (WebCore::StereoPannerNode::create):
     53        * Modules/webaudio/WaveShaperNode.cpp:
     54        (WebCore::WaveShaperNode::create):
     55
    1562020-09-25  Lauro Moura  <lmoura@igalia.com>
    257
  • trunk/Source/WebCore/Modules/webaudio/AnalyserNode.cpp

    r267604 r267609  
    4141    if (context.isStopped())
    4242        return Exception { InvalidStateError };
    43 
    44     context.lazyInitialize();
    4543   
    4644    auto analyser = adoptRef(*new AnalyserNode(context));
  • trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp

    r267604 r267609  
    7171        return Exception { InvalidStateError };
    7272
    73     context.lazyInitialize();
    74 
    7573    auto node = adoptRef(*new AudioBufferSourceNode(context));
    7674
  • trunk/Source/WebCore/Modules/webaudio/AudioNode.cpp

    r267604 r267609  
    115115    }
    116116#endif
     117
     118    // AudioDestinationNodes are not constructed by JS and should not cause lazy initialization.
     119    if (type != NodeTypeDestination)
     120        context.lazyInitialize();
    117121}
    118122
  • trunk/Source/WebCore/Modules/webaudio/BaseAudioContext.cpp

    r267591 r267609  
    230230        }
    231231    }
     232
    232233    m_isInitialized = true;
    233234}
  • trunk/Source/WebCore/Modules/webaudio/BiquadFilterNode.cpp

    r267604 r267609  
    3838    if (context.isStopped())
    3939        return Exception { InvalidStateError };
    40 
    41     context.lazyInitialize();
    4240
    4341    auto node = adoptRef(*new BiquadFilterNode(context));
  • trunk/Source/WebCore/Modules/webaudio/ChannelMergerNode.cpp

    r267604 r267609  
    4646    if (context.isStopped())
    4747        return Exception { InvalidStateError };
    48 
    49     context.lazyInitialize();
    5048   
    5149    if (options.numberOfInputs > AudioContext::maxNumberOfChannels() || !options.numberOfInputs)
  • trunk/Source/WebCore/Modules/webaudio/ChannelSplitterNode.cpp

    r267604 r267609  
    4242    if (context.isStopped())
    4343        return Exception { InvalidStateError };
    44 
    45     context.lazyInitialize();
    4644   
    4745    if (options.numberOfOutputs > AudioContext::maxNumberOfChannels() || !options.numberOfOutputs)
  • trunk/Source/WebCore/Modules/webaudio/ConstantSourceNode.cpp

    r267604 r267609  
    4444    if (context.isStopped())
    4545        return Exception { InvalidStateError };
    46    
    47     context.lazyInitialize();
    4846   
    4947    auto node = adoptRef(*new ConstantSourceNode(context, options.offset));
  • trunk/Source/WebCore/Modules/webaudio/ConvolverNode.cpp

    r267604 r267609  
    6161        return Exception { InvalidStateError };
    6262
    63     context.lazyInitialize();
    64 
    6563    auto node = adoptRef(*new ConvolverNode(context));
    6664
  • trunk/Source/WebCore/Modules/webaudio/DelayNode.cpp

    r267604 r267609  
    5353        return Exception { InvalidStateError };
    5454
    55     context.lazyInitialize();
    56 
    5755    if (options.maxDelayTime <= 0 || options.maxDelayTime >= maximumAllowedDelayTime)
    5856        return Exception { NotSupportedError };
  • trunk/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.cpp

    r267604 r267609  
    5050    if (context.isStopped())
    5151        return Exception { InvalidStateError };
    52 
    53     context.lazyInitialize();
    5452
    5553    auto node = adoptRef(*new DynamicsCompressorNode(context, options));
  • trunk/Source/WebCore/Modules/webaudio/GainNode.cpp

    r267604 r267609  
    4343    if (context.isStopped())
    4444        return Exception { InvalidStateError };
    45 
    46     context.lazyInitialize();
    4745
    4846    auto gainNode = adoptRef(*new GainNode(context));
  • trunk/Source/WebCore/Modules/webaudio/IIRFilterNode.cpp

    r267604 r267609  
    8888        return Exception { InvalidStateError };
    8989
    90     context.lazyInitialize();
    91 
    9290    if (!options.feedforward.size() || options.feedforward.size() > IIRFilter::maxOrder)
    9391        return Exception { NotSupportedError, "feedforward array must have a length between 1 and 20"_s };
  • trunk/Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.cpp

    r267604 r267609  
    5555    if (options.mediaElement->audioSourceNode())
    5656        return Exception { InvalidStateError, "Media element is already associated with an audio source node"_s };
    57 
    58     context.lazyInitialize();
    5957
    6058    auto node = adoptRef(*new MediaElementAudioSourceNode(context, *options.mediaElement));
  • trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioDestinationNode.cpp

    r267604 r267609  
    4545        return Exception { InvalidStateError };
    4646
    47     context.lazyInitialize();
    48 
    4947    auto node = adoptRef(*new MediaStreamAudioDestinationNode(context));
    5048
  • trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.cpp

    r267604 r267609  
    6060    if (!providerTrack)
    6161        return Exception { InvalidStateError, "Could not find an audio track with an audio source provider"_s };
    62 
    63     context.lazyInitialize();
    6462
    6563    auto node = adoptRef(*new MediaStreamAudioSourceNode(context, *options.mediaStream, *providerTrack));
  • trunk/Source/WebCore/Modules/webaudio/OscillatorNode.cpp

    r267604 r267609  
    6666        return Exception { InvalidStateError };
    6767
    68     context.lazyInitialize();
    69 
    7068    if (options.type == OscillatorType::Custom && !options.periodicWave)
    7169        return Exception { InvalidStateError, "Must provide periodicWave when using custom type."_s };
  • trunk/Source/WebCore/Modules/webaudio/PannerNode.cpp

    r267604 r267609  
    6161        return Exception { InvalidStateError };
    6262
    63     context.lazyInitialize();
    64 
    6563    auto panner = adoptRef(*new PannerNode(context, options));
    6664
  • trunk/Source/WebCore/Modules/webaudio/PeriodicWave.cpp

    r267544 r267609  
    6565        return Exception { InvalidStateError };
    6666
    67     context.lazyInitialize();
    68 
    6967    Vector<float> real;
    7068    Vector<float> imag;
  • trunk/Source/WebCore/Modules/webaudio/StereoPannerNode.cpp

    r267604 r267609  
    4444    if (context.isStopped())
    4545        return Exception { InvalidStateError };
    46    
    47     context.lazyInitialize();
    4846   
    4947    auto stereo = adoptRef(*new StereoPannerNode(context, options.pan));
  • trunk/Source/WebCore/Modules/webaudio/WaveShaperNode.cpp

    r267604 r267609  
    4242    if (context.isStopped())
    4343        return Exception { InvalidStateError };
    44 
    45     context.lazyInitialize();
    46     UNUSED_PARAM(options);
    4744
    4845    RefPtr<Float32Array> curve;
Note: See TracChangeset for help on using the changeset viewer.