[WebCore] Annotate classes with WTF_MAKE_FAST_ALLOCATED as much as possible
authorutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Jul 2018 19:08:41 +0000 (19:08 +0000)
committerutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Jul 2018 19:08:41 +0000 (19:08 +0000)
https://bugs.webkit.org/show_bug.cgi?id=187474

Reviewed by Mark Lam.

When opening cnn.com, debugger says that so many objects in WebCore are allocated
from system allocator. This patch attempts to annotate these found classes with
WTF_MAKE_FAST_ALLOCATED.

We also annotate WebAudio classes with `final` to make WebAudio class hierarchy solid.

No behavior change.

* Modules/indexeddb/IDBIndex.h:
* Modules/indexeddb/IDBObjectStore.h:
* Modules/indexeddb/client/IDBConnectionProxy.h:
* Modules/mediastream/UserMediaController.h:
* Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
* Modules/webaudio/AsyncAudioDecoder.h:
* Modules/webaudio/AudioListener.h:
(WebCore::AudioListener::create): Deleted.
(WebCore::AudioListener::setPosition): Deleted.
(WebCore::AudioListener::position const): Deleted.
(WebCore::AudioListener::setOrientation): Deleted.
(WebCore::AudioListener::orientation const): Deleted.
(WebCore::AudioListener::setUpVector): Deleted.
(WebCore::AudioListener::upVector const): Deleted.
(WebCore::AudioListener::setVelocity): Deleted.
(WebCore::AudioListener::velocity const): Deleted.
(WebCore::AudioListener::setDopplerFactor): Deleted.
(WebCore::AudioListener::dopplerFactor const): Deleted.
(WebCore::AudioListener::setSpeedOfSound): Deleted.
(WebCore::AudioListener::speedOfSound const): Deleted.
* Modules/webaudio/AudioNode.h:
* Modules/webaudio/AudioNodeInput.h:
(WebCore::AudioNodeInput::node const): Deleted.
* Modules/webaudio/AudioNodeOutput.h:
* Modules/webaudio/AudioParam.h:
(WebCore::AudioParam::create): Deleted.
(WebCore::AudioParam::name const): Deleted.
(WebCore::AudioParam::minValue const): Deleted.
(WebCore::AudioParam::maxValue const): Deleted.
(WebCore::AudioParam::defaultValue const): Deleted.
(WebCore::AudioParam::units const): Deleted.
(WebCore::AudioParam::resetSmoothedValue): Deleted.
(WebCore::AudioParam::setSmoothingConstant): Deleted.
(WebCore::AudioParam::setValueAtTime): Deleted.
(WebCore::AudioParam::linearRampToValueAtTime): Deleted.
(WebCore::AudioParam::exponentialRampToValueAtTime): Deleted.
(WebCore::AudioParam::setTargetAtTime): Deleted.
(WebCore::AudioParam::setValueCurveAtTime): Deleted.
(WebCore::AudioParam::cancelScheduledValues): Deleted.
(WebCore::AudioParam::hasSampleAccurateValues): Deleted.
(WebCore::AudioParam::AudioParam): Deleted.
* Modules/webaudio/AudioParamTimeline.h:
* Modules/webaudio/AudioProcessingEvent.h:
(WebCore::AudioProcessingEvent::create): Deleted.
(WebCore::AudioProcessingEvent::createForBindings): Deleted.
(WebCore::AudioProcessingEvent::inputBuffer): Deleted.
(WebCore::AudioProcessingEvent::outputBuffer): Deleted.
(WebCore::AudioProcessingEvent::playbackTime const): Deleted.
* Modules/webaudio/BiquadDSPKernel.h:
(WebCore::BiquadDSPKernel::BiquadDSPKernel): Deleted.
(WebCore::BiquadDSPKernel::biquadProcessor): Deleted.
* Modules/webaudio/BiquadFilterNode.h:
(WebCore::BiquadFilterNode::create): Deleted.
(WebCore::BiquadFilterNode::frequency): Deleted.
(WebCore::BiquadFilterNode::q): Deleted.
(WebCore::BiquadFilterNode::gain): Deleted.
(WebCore::BiquadFilterNode::detune): Deleted.
(WebCore::BiquadFilterNode::biquadProcessor): Deleted.
* Modules/webaudio/BiquadProcessor.h:
(WebCore::BiquadProcessor::filterCoefficientsDirty const): Deleted.
(WebCore::BiquadProcessor::hasSampleAccurateValues const): Deleted.
(WebCore::BiquadProcessor::parameter1): Deleted.
(WebCore::BiquadProcessor::parameter2): Deleted.
(WebCore::BiquadProcessor::parameter3): Deleted.
(WebCore::BiquadProcessor::parameter4): Deleted.
(WebCore::BiquadProcessor::type const): Deleted.
* Modules/webaudio/ChannelMergerNode.h:
* Modules/webaudio/ChannelSplitterNode.h:
* Modules/webaudio/DelayDSPKernel.h:
(WebCore::DelayDSPKernel::maxDelayTime const): Deleted.
(WebCore::DelayDSPKernel::setDelayFrames): Deleted.
(WebCore::DelayDSPKernel::delayProcessor): Deleted.
* Modules/webaudio/DelayNode.h:
* Modules/webaudio/DelayProcessor.h:
(WebCore::DelayProcessor::delayTime const): Deleted.
(WebCore::DelayProcessor::maxDelayTime): Deleted.
* Modules/webaudio/DynamicsCompressorNode.h:
(WebCore::DynamicsCompressorNode::create): Deleted.
(WebCore::DynamicsCompressorNode::threshold): Deleted.
(WebCore::DynamicsCompressorNode::knee): Deleted.
(WebCore::DynamicsCompressorNode::ratio): Deleted.
(WebCore::DynamicsCompressorNode::attack): Deleted.
(WebCore::DynamicsCompressorNode::release): Deleted.
(WebCore::DynamicsCompressorNode::reduction): Deleted.
* Modules/webaudio/GainNode.h:
(WebCore::GainNode::create): Deleted.
(WebCore::GainNode::gain): Deleted.
* Modules/webaudio/MediaElementAudioSourceNode.h:
(WebCore::MediaElementAudioSourceNode::mediaElement): Deleted.
* Modules/webaudio/MediaStreamAudioDestinationNode.h:
(WebCore::MediaStreamAudioDestinationNode::stream): Deleted.
* Modules/webaudio/MediaStreamAudioSourceNode.h:
(WebCore::MediaStreamAudioSourceNode::mediaStream): Deleted.
* Modules/webaudio/OfflineAudioCompletionEvent.h:
(WebCore::OfflineAudioCompletionEvent::renderedBuffer): Deleted.
* Modules/webaudio/OfflineAudioDestinationNode.h:
(WebCore::OfflineAudioDestinationNode::create): Deleted.
* Modules/webaudio/PannerNode.h:
(WebCore::PannerNode::create): Deleted.
(WebCore::PannerNode::panningModel const): Deleted.
(WebCore::PannerNode::position const): Deleted.
(WebCore::PannerNode::setPosition): Deleted.
(WebCore::PannerNode::orientation const): Deleted.
(WebCore::PannerNode::setOrientation): Deleted.
(WebCore::PannerNode::velocity const): Deleted.
(WebCore::PannerNode::setVelocity): Deleted.
(WebCore::PannerNode::refDistance): Deleted.
(WebCore::PannerNode::setRefDistance): Deleted.
(WebCore::PannerNode::maxDistance): Deleted.
(WebCore::PannerNode::setMaxDistance): Deleted.
(WebCore::PannerNode::rolloffFactor): Deleted.
(WebCore::PannerNode::setRolloffFactor): Deleted.
(WebCore::PannerNode::coneInnerAngle const): Deleted.
(WebCore::PannerNode::setConeInnerAngle): Deleted.
(WebCore::PannerNode::coneOuterAngle const): Deleted.
(WebCore::PannerNode::setConeOuterAngle): Deleted.
(WebCore::PannerNode::coneOuterGain const): Deleted.
(WebCore::PannerNode::setConeOuterGain): Deleted.
(WebCore::PannerNode::distanceGain): Deleted.
(WebCore::PannerNode::coneGain): Deleted.
* Modules/webaudio/PeriodicWave.h:
(WebCore::PeriodicWave::rateScale const): Deleted.
(WebCore::PeriodicWave::periodicWaveSize const): Deleted.
(WebCore::PeriodicWave::sampleRate const): Deleted.
(WebCore::PeriodicWave::numberOfRanges const): Deleted.
* Modules/webaudio/RealtimeAnalyser.h:
* Modules/webaudio/ScriptProcessorNode.h:
(WebCore::ScriptProcessorNode::bufferSize const): Deleted.
(WebCore::ScriptProcessorNode::doubleBufferIndex const): Deleted.
(WebCore::ScriptProcessorNode::swapBuffers): Deleted.
* Modules/webaudio/WaveShaperDSPKernel.h:
(WebCore::WaveShaperDSPKernel::waveShaperProcessor): Deleted.
* Modules/webaudio/WaveShaperProcessor.h:
(WebCore::WaveShaperProcessor::curve): Deleted.
(WebCore::WaveShaperProcessor::oversample const): Deleted.
* dom/MessagePort.h:
* html/FormAssociatedElement.h:
* loader/LinkPreloadResourceClients.h:
* page/WheelEventDeltaFilter.h:
* page/mac/WheelEventDeltaFilterMac.h:
* platform/RemoteCommandListener.h:
* platform/audio/AudioDSPKernel.h:
* platform/audio/AudioProcessor.h:
* platform/audio/PlatformMediaSession.h:
* platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.h:
* platform/mediastream/libwebrtc/LibWebRTCAudioModule.h:
* platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.h:
* workers/service/ServiceWorkerContainer.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233650 268f45cc-cd09-0410-ab3c-d52691b4dbfc

48 files changed:
Source/WebCore/ChangeLog
Source/WebCore/Modules/indexeddb/IDBIndex.h
Source/WebCore/Modules/indexeddb/IDBObjectStore.h
Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h
Source/WebCore/Modules/mediastream/UserMediaController.h
Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h
Source/WebCore/Modules/webaudio/AsyncAudioDecoder.h
Source/WebCore/Modules/webaudio/AudioListener.h
Source/WebCore/Modules/webaudio/AudioNode.h
Source/WebCore/Modules/webaudio/AudioNodeInput.h
Source/WebCore/Modules/webaudio/AudioNodeOutput.h
Source/WebCore/Modules/webaudio/AudioParam.h
Source/WebCore/Modules/webaudio/AudioParamTimeline.h
Source/WebCore/Modules/webaudio/AudioProcessingEvent.h
Source/WebCore/Modules/webaudio/BiquadDSPKernel.h
Source/WebCore/Modules/webaudio/BiquadFilterNode.h
Source/WebCore/Modules/webaudio/BiquadProcessor.h
Source/WebCore/Modules/webaudio/ChannelMergerNode.h
Source/WebCore/Modules/webaudio/ChannelSplitterNode.h
Source/WebCore/Modules/webaudio/DelayDSPKernel.h
Source/WebCore/Modules/webaudio/DelayNode.h
Source/WebCore/Modules/webaudio/DelayProcessor.h
Source/WebCore/Modules/webaudio/DynamicsCompressorNode.h
Source/WebCore/Modules/webaudio/GainNode.h
Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.h
Source/WebCore/Modules/webaudio/MediaStreamAudioDestinationNode.h
Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.h
Source/WebCore/Modules/webaudio/OfflineAudioCompletionEvent.h
Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.h
Source/WebCore/Modules/webaudio/PannerNode.h
Source/WebCore/Modules/webaudio/PeriodicWave.h
Source/WebCore/Modules/webaudio/RealtimeAnalyser.h
Source/WebCore/Modules/webaudio/ScriptProcessorNode.h
Source/WebCore/Modules/webaudio/WaveShaperDSPKernel.h
Source/WebCore/Modules/webaudio/WaveShaperProcessor.h
Source/WebCore/dom/MessagePort.h
Source/WebCore/html/FormAssociatedElement.h
Source/WebCore/loader/LinkPreloadResourceClients.h
Source/WebCore/page/WheelEventDeltaFilter.h
Source/WebCore/page/mac/WheelEventDeltaFilterMac.h
Source/WebCore/platform/RemoteCommandListener.h
Source/WebCore/platform/audio/AudioDSPKernel.h
Source/WebCore/platform/audio/AudioProcessor.h
Source/WebCore/platform/audio/PlatformMediaSession.h
Source/WebCore/platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.h
Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCAudioModule.h
Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.h
Source/WebCore/workers/service/ServiceWorkerContainer.h

index 2387f1f..e0cefa8 100644 (file)
@@ -1,3 +1,167 @@
+2018-07-09  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        [WebCore] Annotate classes with WTF_MAKE_FAST_ALLOCATED as much as possible
+        https://bugs.webkit.org/show_bug.cgi?id=187474
+
+        Reviewed by Mark Lam.
+
+        When opening cnn.com, debugger says that so many objects in WebCore are allocated
+        from system allocator. This patch attempts to annotate these found classes with
+        WTF_MAKE_FAST_ALLOCATED.
+
+        We also annotate WebAudio classes with `final` to make WebAudio class hierarchy solid.
+
+        No behavior change.
+
+        * Modules/indexeddb/IDBIndex.h:
+        * Modules/indexeddb/IDBObjectStore.h:
+        * Modules/indexeddb/client/IDBConnectionProxy.h:
+        * Modules/mediastream/UserMediaController.h:
+        * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
+        * Modules/webaudio/AsyncAudioDecoder.h:
+        * Modules/webaudio/AudioListener.h:
+        (WebCore::AudioListener::create): Deleted.
+        (WebCore::AudioListener::setPosition): Deleted.
+        (WebCore::AudioListener::position const): Deleted.
+        (WebCore::AudioListener::setOrientation): Deleted.
+        (WebCore::AudioListener::orientation const): Deleted.
+        (WebCore::AudioListener::setUpVector): Deleted.
+        (WebCore::AudioListener::upVector const): Deleted.
+        (WebCore::AudioListener::setVelocity): Deleted.
+        (WebCore::AudioListener::velocity const): Deleted.
+        (WebCore::AudioListener::setDopplerFactor): Deleted.
+        (WebCore::AudioListener::dopplerFactor const): Deleted.
+        (WebCore::AudioListener::setSpeedOfSound): Deleted.
+        (WebCore::AudioListener::speedOfSound const): Deleted.
+        * Modules/webaudio/AudioNode.h:
+        * Modules/webaudio/AudioNodeInput.h:
+        (WebCore::AudioNodeInput::node const): Deleted.
+        * Modules/webaudio/AudioNodeOutput.h:
+        * Modules/webaudio/AudioParam.h:
+        (WebCore::AudioParam::create): Deleted.
+        (WebCore::AudioParam::name const): Deleted.
+        (WebCore::AudioParam::minValue const): Deleted.
+        (WebCore::AudioParam::maxValue const): Deleted.
+        (WebCore::AudioParam::defaultValue const): Deleted.
+        (WebCore::AudioParam::units const): Deleted.
+        (WebCore::AudioParam::resetSmoothedValue): Deleted.
+        (WebCore::AudioParam::setSmoothingConstant): Deleted.
+        (WebCore::AudioParam::setValueAtTime): Deleted.
+        (WebCore::AudioParam::linearRampToValueAtTime): Deleted.
+        (WebCore::AudioParam::exponentialRampToValueAtTime): Deleted.
+        (WebCore::AudioParam::setTargetAtTime): Deleted.
+        (WebCore::AudioParam::setValueCurveAtTime): Deleted.
+        (WebCore::AudioParam::cancelScheduledValues): Deleted.
+        (WebCore::AudioParam::hasSampleAccurateValues): Deleted.
+        (WebCore::AudioParam::AudioParam): Deleted.
+        * Modules/webaudio/AudioParamTimeline.h:
+        * Modules/webaudio/AudioProcessingEvent.h:
+        (WebCore::AudioProcessingEvent::create): Deleted.
+        (WebCore::AudioProcessingEvent::createForBindings): Deleted.
+        (WebCore::AudioProcessingEvent::inputBuffer): Deleted.
+        (WebCore::AudioProcessingEvent::outputBuffer): Deleted.
+        (WebCore::AudioProcessingEvent::playbackTime const): Deleted.
+        * Modules/webaudio/BiquadDSPKernel.h:
+        (WebCore::BiquadDSPKernel::BiquadDSPKernel): Deleted.
+        (WebCore::BiquadDSPKernel::biquadProcessor): Deleted.
+        * Modules/webaudio/BiquadFilterNode.h:
+        (WebCore::BiquadFilterNode::create): Deleted.
+        (WebCore::BiquadFilterNode::frequency): Deleted.
+        (WebCore::BiquadFilterNode::q): Deleted.
+        (WebCore::BiquadFilterNode::gain): Deleted.
+        (WebCore::BiquadFilterNode::detune): Deleted.
+        (WebCore::BiquadFilterNode::biquadProcessor): Deleted.
+        * Modules/webaudio/BiquadProcessor.h:
+        (WebCore::BiquadProcessor::filterCoefficientsDirty const): Deleted.
+        (WebCore::BiquadProcessor::hasSampleAccurateValues const): Deleted.
+        (WebCore::BiquadProcessor::parameter1): Deleted.
+        (WebCore::BiquadProcessor::parameter2): Deleted.
+        (WebCore::BiquadProcessor::parameter3): Deleted.
+        (WebCore::BiquadProcessor::parameter4): Deleted.
+        (WebCore::BiquadProcessor::type const): Deleted.
+        * Modules/webaudio/ChannelMergerNode.h:
+        * Modules/webaudio/ChannelSplitterNode.h:
+        * Modules/webaudio/DelayDSPKernel.h:
+        (WebCore::DelayDSPKernel::maxDelayTime const): Deleted.
+        (WebCore::DelayDSPKernel::setDelayFrames): Deleted.
+        (WebCore::DelayDSPKernel::delayProcessor): Deleted.
+        * Modules/webaudio/DelayNode.h:
+        * Modules/webaudio/DelayProcessor.h:
+        (WebCore::DelayProcessor::delayTime const): Deleted.
+        (WebCore::DelayProcessor::maxDelayTime): Deleted.
+        * Modules/webaudio/DynamicsCompressorNode.h:
+        (WebCore::DynamicsCompressorNode::create): Deleted.
+        (WebCore::DynamicsCompressorNode::threshold): Deleted.
+        (WebCore::DynamicsCompressorNode::knee): Deleted.
+        (WebCore::DynamicsCompressorNode::ratio): Deleted.
+        (WebCore::DynamicsCompressorNode::attack): Deleted.
+        (WebCore::DynamicsCompressorNode::release): Deleted.
+        (WebCore::DynamicsCompressorNode::reduction): Deleted.
+        * Modules/webaudio/GainNode.h:
+        (WebCore::GainNode::create): Deleted.
+        (WebCore::GainNode::gain): Deleted.
+        * Modules/webaudio/MediaElementAudioSourceNode.h:
+        (WebCore::MediaElementAudioSourceNode::mediaElement): Deleted.
+        * Modules/webaudio/MediaStreamAudioDestinationNode.h:
+        (WebCore::MediaStreamAudioDestinationNode::stream): Deleted.
+        * Modules/webaudio/MediaStreamAudioSourceNode.h:
+        (WebCore::MediaStreamAudioSourceNode::mediaStream): Deleted.
+        * Modules/webaudio/OfflineAudioCompletionEvent.h:
+        (WebCore::OfflineAudioCompletionEvent::renderedBuffer): Deleted.
+        * Modules/webaudio/OfflineAudioDestinationNode.h:
+        (WebCore::OfflineAudioDestinationNode::create): Deleted.
+        * Modules/webaudio/PannerNode.h:
+        (WebCore::PannerNode::create): Deleted.
+        (WebCore::PannerNode::panningModel const): Deleted.
+        (WebCore::PannerNode::position const): Deleted.
+        (WebCore::PannerNode::setPosition): Deleted.
+        (WebCore::PannerNode::orientation const): Deleted.
+        (WebCore::PannerNode::setOrientation): Deleted.
+        (WebCore::PannerNode::velocity const): Deleted.
+        (WebCore::PannerNode::setVelocity): Deleted.
+        (WebCore::PannerNode::refDistance): Deleted.
+        (WebCore::PannerNode::setRefDistance): Deleted.
+        (WebCore::PannerNode::maxDistance): Deleted.
+        (WebCore::PannerNode::setMaxDistance): Deleted.
+        (WebCore::PannerNode::rolloffFactor): Deleted.
+        (WebCore::PannerNode::setRolloffFactor): Deleted.
+        (WebCore::PannerNode::coneInnerAngle const): Deleted.
+        (WebCore::PannerNode::setConeInnerAngle): Deleted.
+        (WebCore::PannerNode::coneOuterAngle const): Deleted.
+        (WebCore::PannerNode::setConeOuterAngle): Deleted.
+        (WebCore::PannerNode::coneOuterGain const): Deleted.
+        (WebCore::PannerNode::setConeOuterGain): Deleted.
+        (WebCore::PannerNode::distanceGain): Deleted.
+        (WebCore::PannerNode::coneGain): Deleted.
+        * Modules/webaudio/PeriodicWave.h:
+        (WebCore::PeriodicWave::rateScale const): Deleted.
+        (WebCore::PeriodicWave::periodicWaveSize const): Deleted.
+        (WebCore::PeriodicWave::sampleRate const): Deleted.
+        (WebCore::PeriodicWave::numberOfRanges const): Deleted.
+        * Modules/webaudio/RealtimeAnalyser.h:
+        * Modules/webaudio/ScriptProcessorNode.h:
+        (WebCore::ScriptProcessorNode::bufferSize const): Deleted.
+        (WebCore::ScriptProcessorNode::doubleBufferIndex const): Deleted.
+        (WebCore::ScriptProcessorNode::swapBuffers): Deleted.
+        * Modules/webaudio/WaveShaperDSPKernel.h:
+        (WebCore::WaveShaperDSPKernel::waveShaperProcessor): Deleted.
+        * Modules/webaudio/WaveShaperProcessor.h:
+        (WebCore::WaveShaperProcessor::curve): Deleted.
+        (WebCore::WaveShaperProcessor::oversample const): Deleted.
+        * dom/MessagePort.h:
+        * html/FormAssociatedElement.h:
+        * loader/LinkPreloadResourceClients.h:
+        * page/WheelEventDeltaFilter.h:
+        * page/mac/WheelEventDeltaFilterMac.h:
+        * platform/RemoteCommandListener.h:
+        * platform/audio/AudioDSPKernel.h:
+        * platform/audio/AudioProcessor.h:
+        * platform/audio/PlatformMediaSession.h:
+        * platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.h:
+        * platform/mediastream/libwebrtc/LibWebRTCAudioModule.h:
+        * platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.h:
+        * workers/service/ServiceWorkerContainer.h:
+
 2018-07-09  Simon Fraser  <simon.fraser@apple.com>
 
         Shrink RenderSVGShape
index b3134fd..d6488d5 100644 (file)
@@ -42,6 +42,8 @@ class IDBKeyRange;
 struct IDBKeyRangeData;
 
 class IDBIndex final : private ActiveDOMObject {
+    WTF_MAKE_NONCOPYABLE(IDBIndex);
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     IDBIndex(ScriptExecutionContext&, const IDBIndexInfo&, IDBObjectStore&);
 
index ea8fd5c..ed60647 100644 (file)
@@ -55,6 +55,8 @@ enum class ObjectStoreOverwriteMode;
 }
 
 class IDBObjectStore final : public ActiveDOMObject {
+    WTF_MAKE_NONCOPYABLE(IDBObjectStore);
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     IDBObjectStore(ScriptExecutionContext&, const IDBObjectStoreInfo&, IDBTransaction&);
     ~IDBObjectStore();
index b7728c0..2d039bf 100644 (file)
@@ -58,6 +58,8 @@ namespace IDBClient {
 class IDBConnectionToServer;
 
 class IDBConnectionProxy {
+    WTF_MAKE_NONCOPYABLE(IDBConnectionProxy);
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     IDBConnectionProxy(IDBConnectionToServer&);
 
index fd7c965..2249abf 100644 (file)
@@ -35,6 +35,7 @@ namespace WebCore {
 class UserMediaRequest;
 
 class UserMediaController : public Supplement<Page> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit UserMediaController(UserMediaClient*);
     ~UserMediaController();
index 83a0e20..d5e826f 100644 (file)
@@ -46,6 +46,7 @@ class RealtimeOutgoingAudioSource;
 class RealtimeOutgoingVideoSource;
 
 class LibWebRTCPeerConnectionBackend final : public PeerConnectionBackend {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     LibWebRTCPeerConnectionBackend(RTCPeerConnection&, LibWebRTCProvider&);
     ~LibWebRTCPeerConnectionBackend();
index 42fc002..bc00eb9 100644 (file)
@@ -54,6 +54,7 @@ public:
 private:
     class DecodingTask {
         WTF_MAKE_NONCOPYABLE(DecodingTask);
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         DecodingTask(Ref<JSC::ArrayBuffer>&& audioData, float sampleRate, RefPtr<AudioBufferCallback>&& successCallback, RefPtr<AudioBufferCallback>&& errorCallback);
         void decode();
index 12e7977..6f08134 100644 (file)
@@ -36,7 +36,7 @@ namespace WebCore {
 
 // AudioListener maintains the state of the listener in the audio scene as defined in the OpenAL specification.
 
-class AudioListener : public RefCounted<AudioListener> {
+class AudioListener final : public RefCounted<AudioListener> {
 public:
     static Ref<AudioListener> create()
     {
index fbbc5e0..30a5f81 100644 (file)
@@ -45,6 +45,8 @@ class AudioParam;
 // Most processing nodes such as filters will have one input and one output, although multiple inputs and outputs are possible.
 
 class AudioNode : public EventTargetWithInlineData {
+    WTF_MAKE_NONCOPYABLE(AudioNode);
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     enum { ProcessingSizeInFrames = 128 };
 
index 3e8cc40..38178bd 100644 (file)
@@ -38,7 +38,9 @@ class AudioNodeOutput;
 // In the case of multiple connections, the input will act as a unity-gain summing junction, mixing all the outputs.
 // The number of channels of the input's bus is the maximum of the number of channels of all its connections.
 
-class AudioNodeInput : public AudioSummingJunction {
+class AudioNodeInput final : public AudioSummingJunction {
+    WTF_MAKE_NONCOPYABLE(AudioNodeInput);
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit AudioNodeInput(AudioNode*);
 
index e88a730..50a95ee 100644 (file)
@@ -39,6 +39,8 @@ class AudioNodeInput;
 // It may be connected to one or more AudioNodeInputs.
 
 class AudioNodeOutput {
+    WTF_MAKE_NONCOPYABLE(AudioNodeOutput);
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     // It's OK to pass 0 for numberOfChannels in which case setNumberOfChannels() must be called later on.
     AudioNodeOutput(AudioNode*, unsigned numberOfChannels);
index cfa0cd1..6b5ec7a 100644 (file)
@@ -40,7 +40,7 @@ namespace WebCore {
 
 class AudioNodeOutput;
 
-class AudioParam : public AudioSummingJunction, public RefCounted<AudioParam> {
+class AudioParam final : public AudioSummingJunction, public RefCounted<AudioParam> {
 public:
     static const double DefaultSmoothingConstant;
     static const double SnapThreshold;
index fc54962..7c10999 100644 (file)
@@ -36,6 +36,8 @@
 namespace WebCore {
 
 class AudioParamTimeline {
+    WTF_MAKE_NONCOPYABLE(AudioParamTimeline);
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     AudioParamTimeline()
     {
index cc8cce3..6991576 100644 (file)
@@ -32,7 +32,7 @@ namespace WebCore {
 
 class AudioBuffer;
     
-class AudioProcessingEvent : public Event {
+class AudioProcessingEvent final : public Event {
 public:
     static Ref<AudioProcessingEvent> create(RefPtr<AudioBuffer>&& inputBuffer, RefPtr<AudioBuffer>&& outputBuffer, double playbackTime)
     {
index 9355524..aef8d67 100644 (file)
@@ -34,7 +34,7 @@ class BiquadProcessor;
 
 // BiquadDSPKernel is an AudioDSPKernel and is responsible for filtering one channel of a BiquadProcessor using a Biquad object.
 
-class BiquadDSPKernel : public AudioDSPKernel {
+class BiquadDSPKernel final : public AudioDSPKernel {
 public:  
     explicit BiquadDSPKernel(BiquadProcessor* processor)
     : AudioDSPKernel(processor)
index 986d286..e650412 100644 (file)
@@ -31,7 +31,7 @@ namespace WebCore {
 
 class AudioParam;
 
-class BiquadFilterNode : public AudioBasicProcessorNode {
+class BiquadFilterNode final : public AudioBasicProcessorNode {
 public:
     static Ref<BiquadFilterNode> create(AudioContext& context, float sampleRate)
     {
index 5079f13..32abef8 100644 (file)
@@ -47,7 +47,7 @@ enum class BiquadFilterType {
     Allpass
 };
 
-class BiquadProcessor : public AudioDSPKernelProcessor {
+class BiquadProcessor final : public AudioDSPKernelProcessor {
 public:
     BiquadProcessor(AudioContext&, float sampleRate, size_t numberOfChannels, bool autoInitialize);
 
index 3071b56..57d63b5 100644 (file)
@@ -34,7 +34,7 @@ namespace WebCore {
 
 class AudioContext;
     
-class ChannelMergerNode : public AudioNode {
+class ChannelMergerNode final : public AudioNode {
 public:
     static RefPtr<ChannelMergerNode> create(AudioContext&, float sampleRate, unsigned numberOfInputs);
 
index acddc6c..6c39239 100644 (file)
@@ -30,7 +30,7 @@ namespace WebCore {
 
 class AudioContext;
     
-class ChannelSplitterNode : public AudioNode {
+class ChannelSplitterNode final : public AudioNode {
 public:
     static RefPtr<ChannelSplitterNode> create(AudioContext&, float sampleRate, unsigned numberOfOutputs);
 
index b249afb..e20f1a9 100644 (file)
@@ -32,7 +32,7 @@ namespace WebCore {
 
 class DelayProcessor;
     
-class DelayDSPKernel : public AudioDSPKernel {
+class DelayDSPKernel final : public AudioDSPKernel {
 public:  
     explicit DelayDSPKernel(DelayProcessor*);
     DelayDSPKernel(double maxDelayTime, float sampleRate);
index 06ca9a7..f3c6565 100644 (file)
@@ -28,7 +28,7 @@
 
 namespace WebCore {
 
-class DelayNode : public AudioBasicProcessorNode {
+class DelayNode final : public AudioBasicProcessorNode {
 public:
     static ExceptionOr<Ref<DelayNode>> create(AudioContext&, float sampleRate, double maxDelayTime);
 
index d082577..3d9c17d 100644 (file)
@@ -33,7 +33,7 @@ namespace WebCore {
 
 class AudioDSPKernel;
     
-class DelayProcessor : public AudioDSPKernelProcessor {
+class DelayProcessor final : public AudioDSPKernelProcessor {
 public:
     DelayProcessor(AudioContext&, float sampleRate, unsigned numberOfChannels, double maxDelayTime);
     virtual ~DelayProcessor();
index 7f9d835..f91fe0e 100644 (file)
@@ -32,7 +32,7 @@ namespace WebCore {
 
 class DynamicsCompressor;
 
-class DynamicsCompressorNode : public AudioNode {
+class DynamicsCompressorNode final : public AudioNode {
 public:
     static Ref<DynamicsCompressorNode> create(AudioContext& context, float sampleRate)
     {
index 94352b0..892ea51 100644 (file)
@@ -35,7 +35,7 @@ class AudioContext;
 // GainNode is an AudioNode with one input and one output which applies a gain (volume) change to the audio signal.
 // De-zippering (smoothing) is applied when the gain value is changed dynamically.
 
-class GainNode : public AudioNode {
+class GainNode final : public AudioNode {
 public:
     static Ref<GainNode> create(AudioContext& context, float sampleRate)
     {
index bb9f714..4da8a0a 100644 (file)
@@ -37,7 +37,7 @@ namespace WebCore {
 
 class AudioContext;
     
-class MediaElementAudioSourceNode : public AudioNode, public AudioSourceProviderClient {
+class MediaElementAudioSourceNode final : public AudioNode, public AudioSourceProviderClient {
 public:
     static Ref<MediaElementAudioSourceNode> create(AudioContext&, HTMLMediaElement&);
 
index f17c10f..8e8f404 100644 (file)
@@ -35,7 +35,7 @@ namespace WebCore {
 class AudioContext;
 class MediaStreamAudioSource;
 
-class MediaStreamAudioDestinationNode : public AudioBasicInspectorNode {
+class MediaStreamAudioDestinationNode final : public AudioBasicInspectorNode {
 public:
     static Ref<MediaStreamAudioDestinationNode> create(AudioContext&, size_t numberOfChannels);
 
index f0d712a..98d6b8f 100644 (file)
@@ -37,7 +37,7 @@ namespace WebCore {
 class AudioContext;
 class MultiChannelResampler;
 
-class MediaStreamAudioSourceNode : public AudioNode, public AudioSourceProviderClient {
+class MediaStreamAudioSourceNode final : public AudioNode, public AudioSourceProviderClient {
 public:
     static Ref<MediaStreamAudioSourceNode> create(AudioContext&, MediaStream&, MediaStreamTrack&);
 
index 7ac3b0e..21fb43a 100644 (file)
@@ -30,7 +30,7 @@
 
 namespace WebCore {
 
-class OfflineAudioCompletionEvent : public Event {
+class OfflineAudioCompletionEvent final : public Event {
 public:
     static Ref<OfflineAudioCompletionEvent> create(RefPtr<AudioBuffer>&& renderedBuffer);
     
index b945bef..609e58b 100644 (file)
@@ -34,7 +34,7 @@ namespace WebCore {
 class AudioBus;
 class AudioContext;
     
-class OfflineAudioDestinationNode : public AudioDestinationNode {
+class OfflineAudioDestinationNode final : public AudioDestinationNode {
 public:
     static Ref<OfflineAudioDestinationNode> create(AudioContext& context, AudioBuffer* renderTarget)
     {
index 5451d71..cd1d75b 100644 (file)
@@ -47,7 +47,7 @@ namespace WebCore {
 // A cone effect will attenuate the gain as the orientation moves away from the listener.
 // All of these effects follow the OpenAL specification very closely.
 
-class PannerNode : public AudioNode {
+class PannerNode final : public AudioNode {
 public:
     static Ref<PannerNode> create(AudioContext& context, float sampleRate)
     {
index 5c64a31..79a2d82 100644 (file)
@@ -36,7 +36,7 @@
 
 namespace WebCore {
 
-class PeriodicWave : public RefCounted<PeriodicWave> {
+class PeriodicWave final : public RefCounted<PeriodicWave> {
 public:
     static Ref<PeriodicWave> createSine(float sampleRate);
     static Ref<PeriodicWave> createSquare(float sampleRate);
index 2624b60..831275c 100644 (file)
@@ -38,6 +38,7 @@ class AudioBus;
 
 class RealtimeAnalyser {
     WTF_MAKE_NONCOPYABLE(RealtimeAnalyser);
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     RealtimeAnalyser();
     virtual ~RealtimeAnalyser();
index 5a49e17..33863b7 100644 (file)
@@ -44,7 +44,7 @@ class AudioProcessingEvent;
 // The "onaudioprocess" attribute is an event listener which will get called periodically with an AudioProcessingEvent which has
 // AudioBuffers for each input and output.
 
-class ScriptProcessorNode : public AudioNode {
+class ScriptProcessorNode final : public AudioNode {
 public:
     // bufferSize must be one of the following values: 256, 512, 1024, 2048, 4096, 8192, 16384.
     // This value controls how frequently the onaudioprocess event handler is called and how many sample-frames need to be processed each call.
index 43a686e..41e367e 100644 (file)
@@ -35,7 +35,7 @@ namespace WebCore {
 
 // WaveShaperDSPKernel is an AudioDSPKernel and is responsible for non-linear distortion on one channel.
 
-class WaveShaperDSPKernel : public AudioDSPKernel {
+class WaveShaperDSPKernel final : public AudioDSPKernel {
 public:
     explicit WaveShaperDSPKernel(WaveShaperProcessor*);
 
index e6220f7..42d0cb3 100644 (file)
@@ -36,7 +36,7 @@ namespace WebCore {
 
 // WaveShaperProcessor is an AudioDSPKernelProcessor which uses WaveShaperDSPKernel objects to implement non-linear distortion effects.
 
-class WaveShaperProcessor : public AudioDSPKernelProcessor {
+class WaveShaperProcessor final : public AudioDSPKernelProcessor {
 public:
     enum OverSampleType {
         OverSampleNone,
index 8eadf79..18ad62e 100644 (file)
@@ -45,6 +45,8 @@ namespace WebCore {
 class Frame;
 
 class MessagePort final : public ActiveDOMObject, public EventTargetWithInlineData, public CanMakeWeakPtr<MessagePort> {
+    WTF_MAKE_NONCOPYABLE(MessagePort);
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static Ref<MessagePort> create(ScriptExecutionContext&, const MessagePortIdentifier& local, const MessagePortIdentifier& remote);
     virtual ~MessagePort();
index d7219fc..1275003 100644 (file)
@@ -38,6 +38,8 @@ class HTMLFormElement;
 class ValidityState;
 
 class FormAssociatedElement : public FormNamedItem {
+    WTF_MAKE_NONCOPYABLE(FormAssociatedElement);
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     virtual ~FormAssociatedElement();
 
index d73f820..2ec8166 100644 (file)
@@ -77,6 +77,7 @@ private:
 };
 
 class LinkPreloadDefaultResourceClient : public LinkPreloadResourceClient, CachedResourceClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     LinkPreloadDefaultResourceClient(LinkLoader& loader, CachedResource& resource)
         : LinkPreloadResourceClient(loader, resource)
@@ -91,6 +92,7 @@ private:
 };
 
 class LinkPreloadStyleResourceClient : public LinkPreloadResourceClient, public CachedStyleSheetClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     LinkPreloadStyleResourceClient(LinkLoader& loader, CachedCSSStyleSheet& resource)
         : LinkPreloadResourceClient(loader, resource)
@@ -111,6 +113,7 @@ private:
 };
 
 class LinkPreloadImageResourceClient : public LinkPreloadResourceClient, public CachedImageClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     LinkPreloadImageResourceClient(LinkLoader& loader, CachedImage& resource)
         : LinkPreloadResourceClient(loader, static_cast<CachedResource&>(resource))
@@ -125,6 +128,7 @@ private:
 };
 
 class LinkPreloadFontResourceClient : public LinkPreloadResourceClient, public CachedFontClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     LinkPreloadFontResourceClient(LinkLoader& loader, CachedFont& resource)
         : LinkPreloadResourceClient(loader, resource)
@@ -144,6 +148,7 @@ private:
 };
 
 class LinkPreloadRawResourceClient : public LinkPreloadResourceClient, public CachedRawResourceClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     LinkPreloadRawResourceClient(LinkLoader& loader, CachedRawResource& resource)
         : LinkPreloadResourceClient(loader, resource)
index db0e44b..20b55cd 100644 (file)
@@ -56,6 +56,7 @@ enum class DominantScrollGestureDirection {
 };
 
 class BasicWheelEventDeltaFilter final : public WheelEventDeltaFilter {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     BasicWheelEventDeltaFilter();
     void updateFromDelta(const FloatSize&) override;
index b00b23a..310822c 100644 (file)
@@ -35,6 +35,7 @@ OBJC_CLASS _NSScrollingPredominantAxisFilter;
 namespace WebCore {
 
 class WheelEventDeltaFilterMac final : public WheelEventDeltaFilter {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     WheelEventDeltaFilterMac();
 
index a3ae00e..2b434ae 100644 (file)
@@ -39,6 +39,7 @@ public:
 };
 
 class RemoteCommandListener {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     WEBCORE_EXPORT static std::unique_ptr<RemoteCommandListener> create(RemoteCommandListenerClient&);
     RemoteCommandListener(RemoteCommandListenerClient& client) : m_client(client) { }
index f501d65..7b3ff00 100644 (file)
@@ -38,6 +38,8 @@ namespace WebCore {
 // AudioDSPKernel does the processing for one channel of an AudioDSPKernelProcessor.
 
 class AudioDSPKernel {
+    WTF_MAKE_NONCOPYABLE(AudioDSPKernel);
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     AudioDSPKernel(AudioDSPKernelProcessor* kernelProcessor)
         : m_kernelProcessor(kernelProcessor)
index c72df7b..8e5422c 100644 (file)
@@ -40,6 +40,8 @@ class AudioBus;
 // or as the processor for a basic (one input - one output) AudioNode.
 
 class AudioProcessor {
+    WTF_MAKE_NONCOPYABLE(AudioProcessor);
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     AudioProcessor(float sampleRate, unsigned numberOfChannels)
         : m_initialized(false)
index 721c7fa..fd6f08c 100644 (file)
@@ -49,6 +49,7 @@ class PlatformMediaSession
     , private LoggerHelper
 #endif
 {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static std::unique_ptr<PlatformMediaSession> create(PlatformMediaSessionClient&);
 
index aa2a57f..db87edc 100644 (file)
@@ -36,6 +36,7 @@
 namespace WebCore {
 
 class VideoFullscreenLayerManagerObjC final : public VideoFullscreenLayerManager {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     VideoFullscreenLayerManagerObjC();
 
index ff2da96..9875c4f 100644 (file)
@@ -36,6 +36,7 @@ namespace WebCore {
 
 // LibWebRTCAudioModule is pulling streamed data to ensure audio data is passed to the audio track.
 class LibWebRTCAudioModule final : public webrtc::AudioDeviceModule, private rtc::MessageHandler {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     LibWebRTCAudioModule();
 
index 0cdb8a0..8f10713 100644 (file)
@@ -35,6 +35,7 @@
 namespace WebCore {
 
 class WEBCORE_EXPORT LibWebRTCProviderCocoa : public LibWebRTCProvider {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     LibWebRTCProviderCocoa() = default;
     ~LibWebRTCProviderCocoa();
index ad3851b..17e5681 100644 (file)
@@ -49,6 +49,8 @@ enum class ServiceWorkerUpdateViaCache;
 enum class WorkerType;
 
 class ServiceWorkerContainer final : public EventTargetWithInlineData, public ActiveDOMObject, public ServiceWorkerJobClient {
+    WTF_MAKE_NONCOPYABLE(ServiceWorkerContainer);
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     ServiceWorkerContainer(ScriptExecutionContext&, NavigatorBase&);
     ~ServiceWorkerContainer();