Mark more heap-allocated classes as fast allocated
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 8 Feb 2019 02:38:46 +0000 (02:38 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 8 Feb 2019 02:38:46 +0000 (02:38 +0000)
https://bugs.webkit.org/show_bug.cgi?id=194422

Reviewed by Ryosuke Niwa.

Source/WebCore:

* Modules/applepay/PaymentCoordinator.h:
* Modules/beacon/NavigatorBeacon.h:
* Modules/cache/DOMWindowCaches.h:
* Modules/cache/WorkerGlobalScopeCaches.h:
* Modules/credentialmanagement/NavigatorCredentials.h:
* Modules/encryptedmedia/legacy/LegacyCDMPrivateClearKey.h:
* Modules/gamepad/NavigatorGamepad.h:
* Modules/indexeddb/IDBGetAllResult.h:
* Modules/indexeddb/IDBGetResult.h:
* Modules/indexeddb/IDBKeyData.h:
* Modules/indexeddb/IDBValue.h:
* Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h:
* Modules/indexeddb/server/IndexValueEntry.h:
* Modules/indexeddb/server/IndexValueStore.h:
* Modules/indexeddb/server/MemoryBackingStoreTransaction.h:
* Modules/indexeddb/server/MemoryCursor.h:
* Modules/indexeddb/server/MemoryIDBBackingStore.h:
* Modules/indexeddb/server/SQLiteIDBBackingStore.h:
* Modules/indexeddb/server/SQLiteIDBCursor.h:
* Modules/indexeddb/server/SQLiteIDBTransaction.h:
* Modules/indexeddb/server/UniqueIDBDatabase.h:
* Modules/indexeddb/shared/IDBDatabaseInfo.h:
* Modules/indexeddb/shared/IDBResourceIdentifier.h:
* Modules/indexeddb/shared/IDBTransactionInfo.h:
* Modules/mediacapabilities/NavigatorMediaCapabilities.h:
* Modules/mediasession/WebMediaSessionManager.cpp:
* Modules/mediastream/NavigatorMediaDevices.h:
* Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h:
* Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h:
* Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h:
* Modules/mediastream/libwebrtc/LibWebRTCRtpTransceiverBackend.h:
* Modules/navigatorcontentutils/NavigatorContentUtils.h:
* Modules/quota/DOMWindowQuota.h:
* Modules/quota/NavigatorStorageQuota.h:
* Modules/quota/WorkerNavigatorStorageQuota.h:
* Modules/speech/DOMWindowSpeechSynthesis.h:
* Modules/webaudio/BiquadProcessor.h:
* Modules/webaudio/DelayProcessor.h:
* Modules/webauthn/fido/FidoHidPacket.h:
* Modules/webdriver/NavigatorWebDriver.h:
* Modules/webgpu/DOMWindowWebGPU.h:
* Modules/websockets/WebSocketChannel.h:
* Modules/webvr/NavigatorWebVR.h:
* accessibility/AXObjectCache.h:
* bindings/js/DOMGCOutputConstraint.h:
* bindings/js/DOMPromiseProxy.h:
* bridge/c/c_runtime.h:
* contentextensions/CombinedURLFilters.cpp:
* crypto/CryptoAlgorithmParameters.h:
* css/CSSComputedStyleDeclaration.h:
* css/CSSRegisteredCustomProperty.h:
* css/DOMCSSPaintWorklet.h:
* css/DOMCSSRegisterCustomProperty.h:
* css/StyleRule.h:
* dom/ConstantPropertyMap.h:
* dom/CustomElementReactionQueue.h:
* dom/Document.h:
* dom/GenericEventQueue.h:
* dom/RejectedPromiseTracker.h:
* dom/UserGestureIndicator.h:
* editing/ReplaceSelectionCommand.cpp:
* editing/SelectionRectGatherer.h:
* editing/TextIterator.h:
* editing/cocoa/HTMLConverter.mm:
* fileapi/AsyncFileStream.cpp:
* fileapi/AsyncFileStream.h:
* html/forms/FileIconLoader.h:
* html/parser/HTMLTreeBuilder.h:
* html/track/WebVTTParser.h:
* inspector/DOMPatchSupport.cpp:
* loader/FrameLoaderClient.h:
* loader/WorkerThreadableLoader.cpp:
* page/IntersectionObserver.h:
* page/PerformanceMonitor.h:
* page/PerformanceUserTiming.h:
* page/PrintContext.h:
* page/ValidationMessageClient.h:
* platform/ColorChooser.h:
* platform/ControlStates.h:
* platform/DataListSuggestionPicker.h:
* platform/FileStream.h:
* platform/KeyedCoding.h:
* platform/LowPowerModeNotifier.h:
* platform/PlatformSpeechSynthesizer.h:
* platform/WebGLStateTracker.h:
* platform/audio/AudioArray.h:
* platform/audio/AudioDestination.h:
* platform/audio/DownSampler.h:
* platform/audio/DynamicsCompressor.h:
* platform/audio/FFTFrame.h:
* platform/audio/HRTFDatabase.h:
* platform/audio/MultiChannelResampler.h:
* platform/audio/Panner.h:
* platform/audio/Reverb.h:
* platform/audio/ReverbConvolver.h:
* platform/audio/ReverbConvolverStage.h:
* platform/audio/UpSampler.h:
* platform/audio/mac/AudioSessionMac.cpp:
* platform/audio/mac/CAAudioStreamDescription.h:
* platform/audio/mac/CARingBuffer.h:
* platform/cocoa/ScrollSnapAnimatorState.h:
* platform/gamepad/PlatformGamepad.h:
* platform/graphics/GraphicsLayer.cpp:
* platform/graphics/GraphicsLayerFactory.h:
* platform/graphics/PlatformTimeRanges.h:
* platform/graphics/TextTrackRepresentation.h:
* platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.h:
* platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.h:
* platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h:
* platform/graphics/displaylists/DisplayListRecorder.h:
* platform/network/cocoa/WebCoreNSURLSession.mm:
* platform/sql/SQLiteDatabase.h:
* platform/text/TextCodecICU.h:
* rendering/GridBaselineAlignment.h:
* rendering/GridTrackSizingAlgorithm.h:
* rendering/RenderObject.h:
* rendering/style/GridArea.h:
* workers/service/context/SWContextManager.h:

Source/WebCore/PAL:

* pal/crypto/openssl/CryptoDigestOpenSSL.cpp:
* pal/system/Clock.h:

Source/WebKit:

* NetworkProcess/NetworkLoad.cpp:
* NetworkProcess/NetworkLoadChecker.h:
* NetworkProcess/NetworkResourceLoader.cpp:
* Platform/IPC/Connection.h:
* Platform/IPC/mac/ImportanceAssertion.h:
* PluginProcess/PluginCreationParameters.h:
* Shared/API/Cocoa/RemoteObjectRegistry.h:
* Shared/WebEvent.h:
* UIProcess/API/APIHTTPCookieStore.cpp:
* UIProcess/API/APINotificationProvider.h:
* UIProcess/API/Cocoa/PageLoadStateObserver.h:
* UIProcess/API/Cocoa/WKHTTPCookieStore.mm:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setInputDelegate:]):
* UIProcess/API/gtk/PageClientImpl.h:
* UIProcess/BackingStore.h:
* UIProcess/Cocoa/AutomationClient.h:
* UIProcess/Cocoa/DiagnosticLoggingClient.h:
* UIProcess/Cocoa/DownloadClient.h:
* UIProcess/Cocoa/FindClient.h:
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/ViewGestureController.h:
* UIProcess/DeviceIdHashSaltStorage.h:
* UIProcess/Downloads/DownloadProxyMap.h:
* UIProcess/Gamepad/UIGamepad.h:
* UIProcess/Notifications/WebNotificationProvider.h:
* UIProcess/ProcessAssertion.h:
* UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h:
* UIProcess/WebContextInjectedBundleClient.h:
* UIProcess/WebFormClient.h:
* UIProcess/WebGeolocationProvider.h:
* UIProcess/WebPageProxy.h:
* WebProcess/Automation/WebAutomationSessionProxy.h:
* WebProcess/InjectedBundle/API/APIInjectedBundleBundleClient.h:
* WebProcess/InjectedBundle/API/APIInjectedBundleEditorClient.h:
* WebProcess/InjectedBundle/API/APIInjectedBundlePageContextMenuClient.h:
* WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h:
* WebProcess/InjectedBundle/API/APIInjectedBundlePageResourceLoadClient.h:
* WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h:
* WebProcess/InjectedBundle/APIInjectedBundleFormClient.h:
* WebProcess/Network/webrtc/LibWebRTCNetwork.h:
* WebProcess/Network/webrtc/LibWebRTCSocket.h:
* WebProcess/Network/webrtc/WebRTCResolver.h:
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
* WebProcess/WebPage/DrawingArea.h:

Source/WTF:

* wtf/Function.h:
(WTF::Function<Out):
* wtf/RefCounter.h:
* wtf/URL.h:
* wtf/text/StringView.cpp:

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

173 files changed:
Source/WTF/ChangeLog
Source/WTF/wtf/Function.h
Source/WTF/wtf/RefCounter.h
Source/WTF/wtf/URL.h
Source/WTF/wtf/text/StringView.cpp
Source/WebCore/ChangeLog
Source/WebCore/Modules/applepay/PaymentCoordinator.h
Source/WebCore/Modules/beacon/NavigatorBeacon.h
Source/WebCore/Modules/cache/DOMWindowCaches.h
Source/WebCore/Modules/cache/WorkerGlobalScopeCaches.h
Source/WebCore/Modules/credentialmanagement/NavigatorCredentials.h
Source/WebCore/Modules/encryptedmedia/legacy/LegacyCDMPrivateClearKey.h
Source/WebCore/Modules/gamepad/NavigatorGamepad.h
Source/WebCore/Modules/indexeddb/IDBGetAllResult.h
Source/WebCore/Modules/indexeddb/IDBGetResult.h
Source/WebCore/Modules/indexeddb/IDBKeyData.h
Source/WebCore/Modules/indexeddb/IDBValue.h
Source/WebCore/Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h
Source/WebCore/Modules/indexeddb/server/IndexValueEntry.h
Source/WebCore/Modules/indexeddb/server/IndexValueStore.h
Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.h
Source/WebCore/Modules/indexeddb/server/MemoryCursor.h
Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.h
Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.h
Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.h
Source/WebCore/Modules/indexeddb/server/SQLiteIDBTransaction.h
Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.h
Source/WebCore/Modules/indexeddb/shared/IDBDatabaseInfo.h
Source/WebCore/Modules/indexeddb/shared/IDBResourceIdentifier.h
Source/WebCore/Modules/indexeddb/shared/IDBTransactionInfo.h
Source/WebCore/Modules/mediacapabilities/NavigatorMediaCapabilities.h
Source/WebCore/Modules/mediasession/WebMediaSessionManager.cpp
Source/WebCore/Modules/mediastream/NavigatorMediaDevices.h
Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h
Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h
Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h
Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCRtpTransceiverBackend.h
Source/WebCore/Modules/navigatorcontentutils/NavigatorContentUtils.h
Source/WebCore/Modules/quota/DOMWindowQuota.h
Source/WebCore/Modules/quota/NavigatorStorageQuota.h
Source/WebCore/Modules/quota/WorkerNavigatorStorageQuota.h
Source/WebCore/Modules/speech/DOMWindowSpeechSynthesis.h
Source/WebCore/Modules/webaudio/BiquadProcessor.h
Source/WebCore/Modules/webaudio/DelayProcessor.h
Source/WebCore/Modules/webauthn/fido/FidoHidPacket.h
Source/WebCore/Modules/webdriver/NavigatorWebDriver.h
Source/WebCore/Modules/webgpu/DOMWindowWebGPU.h
Source/WebCore/Modules/websockets/WebSocketChannel.h
Source/WebCore/Modules/webvr/NavigatorWebVR.h
Source/WebCore/PAL/ChangeLog
Source/WebCore/PAL/pal/crypto/openssl/CryptoDigestOpenSSL.cpp
Source/WebCore/PAL/pal/system/Clock.h
Source/WebCore/accessibility/AXObjectCache.h
Source/WebCore/bindings/js/DOMGCOutputConstraint.h
Source/WebCore/bindings/js/DOMPromiseProxy.h
Source/WebCore/bridge/c/c_runtime.h
Source/WebCore/contentextensions/CombinedURLFilters.cpp
Source/WebCore/crypto/CryptoAlgorithmParameters.h
Source/WebCore/css/CSSComputedStyleDeclaration.h
Source/WebCore/css/CSSRegisteredCustomProperty.h
Source/WebCore/css/DOMCSSPaintWorklet.h
Source/WebCore/css/DOMCSSRegisterCustomProperty.h
Source/WebCore/css/StyleRule.h
Source/WebCore/dom/ConstantPropertyMap.h
Source/WebCore/dom/CustomElementReactionQueue.h
Source/WebCore/dom/Document.h
Source/WebCore/dom/GenericEventQueue.h
Source/WebCore/dom/RejectedPromiseTracker.h
Source/WebCore/dom/UserGestureIndicator.h
Source/WebCore/editing/ReplaceSelectionCommand.cpp
Source/WebCore/editing/SelectionRectGatherer.h
Source/WebCore/editing/TextIterator.h
Source/WebCore/editing/cocoa/HTMLConverter.mm
Source/WebCore/fileapi/AsyncFileStream.cpp
Source/WebCore/fileapi/AsyncFileStream.h
Source/WebCore/html/forms/FileIconLoader.h
Source/WebCore/html/parser/HTMLTreeBuilder.h
Source/WebCore/html/track/WebVTTParser.h
Source/WebCore/inspector/DOMPatchSupport.cpp
Source/WebCore/loader/FrameLoaderClient.h
Source/WebCore/loader/WorkerThreadableLoader.cpp
Source/WebCore/page/IntersectionObserver.h
Source/WebCore/page/PerformanceMonitor.h
Source/WebCore/page/PerformanceUserTiming.h
Source/WebCore/page/PrintContext.h
Source/WebCore/page/ValidationMessageClient.h
Source/WebCore/platform/ColorChooser.h
Source/WebCore/platform/ControlStates.h
Source/WebCore/platform/DataListSuggestionPicker.h
Source/WebCore/platform/FileStream.h
Source/WebCore/platform/KeyedCoding.h
Source/WebCore/platform/LowPowerModeNotifier.h
Source/WebCore/platform/PlatformSpeechSynthesizer.h
Source/WebCore/platform/WebGLStateTracker.h
Source/WebCore/platform/audio/AudioArray.h
Source/WebCore/platform/audio/AudioDestination.h
Source/WebCore/platform/audio/DownSampler.h
Source/WebCore/platform/audio/DynamicsCompressor.h
Source/WebCore/platform/audio/FFTFrame.h
Source/WebCore/platform/audio/HRTFDatabase.h
Source/WebCore/platform/audio/MultiChannelResampler.h
Source/WebCore/platform/audio/Panner.h
Source/WebCore/platform/audio/Reverb.h
Source/WebCore/platform/audio/ReverbConvolver.h
Source/WebCore/platform/audio/ReverbConvolverStage.h
Source/WebCore/platform/audio/UpSampler.h
Source/WebCore/platform/audio/mac/AudioSessionMac.cpp
Source/WebCore/platform/audio/mac/CAAudioStreamDescription.h
Source/WebCore/platform/audio/mac/CARingBuffer.h
Source/WebCore/platform/cocoa/ScrollSnapAnimatorState.h
Source/WebCore/platform/gamepad/PlatformGamepad.h
Source/WebCore/platform/graphics/GraphicsLayer.cpp
Source/WebCore/platform/graphics/GraphicsLayerFactory.h
Source/WebCore/platform/graphics/PlatformTimeRanges.h
Source/WebCore/platform/graphics/TextTrackRepresentation.h
Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.h
Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.h
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h
Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h
Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm
Source/WebCore/platform/sql/SQLiteDatabase.h
Source/WebCore/platform/text/TextCodecICU.h
Source/WebCore/rendering/GridBaselineAlignment.h
Source/WebCore/rendering/GridTrackSizingAlgorithm.h
Source/WebCore/rendering/RenderObject.h
Source/WebCore/rendering/style/GridArea.h
Source/WebCore/workers/service/context/SWContextManager.h
Source/WebKit/ChangeLog
Source/WebKit/NetworkProcess/NetworkLoad.cpp
Source/WebKit/NetworkProcess/NetworkLoadChecker.h
Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp
Source/WebKit/Platform/IPC/Connection.h
Source/WebKit/Platform/IPC/mac/ImportanceAssertion.h
Source/WebKit/PluginProcess/PluginCreationParameters.h
Source/WebKit/Shared/API/Cocoa/RemoteObjectRegistry.h
Source/WebKit/Shared/WebEvent.h
Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp
Source/WebKit/UIProcess/API/APINotificationProvider.h
Source/WebKit/UIProcess/API/Cocoa/PageLoadStateObserver.h
Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm
Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
Source/WebKit/UIProcess/API/gtk/PageClientImpl.h
Source/WebKit/UIProcess/BackingStore.h
Source/WebKit/UIProcess/Cocoa/AutomationClient.h
Source/WebKit/UIProcess/Cocoa/DiagnosticLoggingClient.h
Source/WebKit/UIProcess/Cocoa/DownloadClient.h
Source/WebKit/UIProcess/Cocoa/FindClient.h
Source/WebKit/UIProcess/Cocoa/NavigationState.h
Source/WebKit/UIProcess/Cocoa/UIDelegate.h
Source/WebKit/UIProcess/Cocoa/ViewGestureController.h
Source/WebKit/UIProcess/DeviceIdHashSaltStorage.h
Source/WebKit/UIProcess/Downloads/DownloadProxyMap.h
Source/WebKit/UIProcess/Gamepad/UIGamepad.h
Source/WebKit/UIProcess/Notifications/WebNotificationProvider.h
Source/WebKit/UIProcess/ProcessAssertion.h
Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h
Source/WebKit/UIProcess/WebContextInjectedBundleClient.h
Source/WebKit/UIProcess/WebFormClient.h
Source/WebKit/UIProcess/WebGeolocationProvider.h
Source/WebKit/UIProcess/WebPageProxy.h
Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.h
Source/WebKit/WebProcess/InjectedBundle/API/APIInjectedBundleBundleClient.h
Source/WebKit/WebProcess/InjectedBundle/API/APIInjectedBundleEditorClient.h
Source/WebKit/WebProcess/InjectedBundle/API/APIInjectedBundlePageContextMenuClient.h
Source/WebKit/WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h
Source/WebKit/WebProcess/InjectedBundle/API/APIInjectedBundlePageResourceLoadClient.h
Source/WebKit/WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h
Source/WebKit/WebProcess/InjectedBundle/APIInjectedBundleFormClient.h
Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetwork.h
Source/WebKit/WebProcess/Network/webrtc/LibWebRTCSocket.h
Source/WebKit/WebProcess/Network/webrtc/WebRTCResolver.h
Source/WebKit/WebProcess/WebCoreSupport/WebInspectorClient.cpp
Source/WebKit/WebProcess/WebPage/DrawingArea.h

index 90f3519..0878178 100644 (file)
@@ -1,3 +1,16 @@
+2019-02-07  Chris Dumez  <cdumez@apple.com>
+
+        Mark more heap-allocated classes as fast allocated
+        https://bugs.webkit.org/show_bug.cgi?id=194422
+
+        Reviewed by Ryosuke Niwa.
+
+        * wtf/Function.h:
+        (WTF::Function<Out):
+        * wtf/RefCounter.h:
+        * wtf/URL.h:
+        * wtf/text/StringView.cpp:
+
 2019-02-07  Per Arne Vollan  <pvollan@apple.com>
 
         [macOS] Block coreservicesd in sandbox.
index 22789af..3ea4123 100644 (file)
@@ -34,6 +34,7 @@ template<typename> class Function;
 
 template <typename Out, typename... In>
 class Function<Out(In...)> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     Function() = default;
     Function(std::nullptr_t) { }
index 605c44a..a5f68af 100644 (file)
@@ -36,6 +36,7 @@ enum class RefCounterEvent { Decrement, Increment };
 
 template<typename T>
 class RefCounter {
+    WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(RefCounter);
 
     class Count {
index 9427c3a..849741c 100644 (file)
@@ -49,6 +49,7 @@ public:
 struct URLHash;
 
 class WTF_EXPORT_PRIVATE URL {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     // Generates a URL which contains a null string.
     URL() { invalidate(); }
index f36b92f..77bac45 100644 (file)
@@ -128,6 +128,7 @@ auto StringView::SplitResult::Iterator::operator++() -> Iterator&
 }
 
 class StringView::GraphemeClusters::Iterator::Impl {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     Impl(const StringView& stringView, Optional<NonSharedCharacterBreakIterator>&& iterator, unsigned index)
         : m_stringView(stringView)
index 13c26c8..a04c1df 100644 (file)
@@ -1,3 +1,129 @@
+2019-02-07  Chris Dumez  <cdumez@apple.com>
+
+        Mark more heap-allocated classes as fast allocated
+        https://bugs.webkit.org/show_bug.cgi?id=194422
+
+        Reviewed by Ryosuke Niwa.
+
+        * Modules/applepay/PaymentCoordinator.h:
+        * Modules/beacon/NavigatorBeacon.h:
+        * Modules/cache/DOMWindowCaches.h:
+        * Modules/cache/WorkerGlobalScopeCaches.h:
+        * Modules/credentialmanagement/NavigatorCredentials.h:
+        * Modules/encryptedmedia/legacy/LegacyCDMPrivateClearKey.h:
+        * Modules/gamepad/NavigatorGamepad.h:
+        * Modules/indexeddb/IDBGetAllResult.h:
+        * Modules/indexeddb/IDBGetResult.h:
+        * Modules/indexeddb/IDBKeyData.h:
+        * Modules/indexeddb/IDBValue.h:
+        * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h:
+        * Modules/indexeddb/server/IndexValueEntry.h:
+        * Modules/indexeddb/server/IndexValueStore.h:
+        * Modules/indexeddb/server/MemoryBackingStoreTransaction.h:
+        * Modules/indexeddb/server/MemoryCursor.h:
+        * Modules/indexeddb/server/MemoryIDBBackingStore.h:
+        * Modules/indexeddb/server/SQLiteIDBBackingStore.h:
+        * Modules/indexeddb/server/SQLiteIDBCursor.h:
+        * Modules/indexeddb/server/SQLiteIDBTransaction.h:
+        * Modules/indexeddb/server/UniqueIDBDatabase.h:
+        * Modules/indexeddb/shared/IDBDatabaseInfo.h:
+        * Modules/indexeddb/shared/IDBResourceIdentifier.h:
+        * Modules/indexeddb/shared/IDBTransactionInfo.h:
+        * Modules/mediacapabilities/NavigatorMediaCapabilities.h:
+        * Modules/mediasession/WebMediaSessionManager.cpp:
+        * Modules/mediastream/NavigatorMediaDevices.h:
+        * Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h:
+        * Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h:
+        * Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h:
+        * Modules/mediastream/libwebrtc/LibWebRTCRtpTransceiverBackend.h:
+        * Modules/navigatorcontentutils/NavigatorContentUtils.h:
+        * Modules/quota/DOMWindowQuota.h:
+        * Modules/quota/NavigatorStorageQuota.h:
+        * Modules/quota/WorkerNavigatorStorageQuota.h:
+        * Modules/speech/DOMWindowSpeechSynthesis.h:
+        * Modules/webaudio/BiquadProcessor.h:
+        * Modules/webaudio/DelayProcessor.h:
+        * Modules/webauthn/fido/FidoHidPacket.h:
+        * Modules/webdriver/NavigatorWebDriver.h:
+        * Modules/webgpu/DOMWindowWebGPU.h:
+        * Modules/websockets/WebSocketChannel.h:
+        * Modules/webvr/NavigatorWebVR.h:
+        * accessibility/AXObjectCache.h:
+        * bindings/js/DOMGCOutputConstraint.h:
+        * bindings/js/DOMPromiseProxy.h:
+        * bridge/c/c_runtime.h:
+        * contentextensions/CombinedURLFilters.cpp:
+        * crypto/CryptoAlgorithmParameters.h:
+        * css/CSSComputedStyleDeclaration.h:
+        * css/CSSRegisteredCustomProperty.h:
+        * css/DOMCSSPaintWorklet.h:
+        * css/DOMCSSRegisterCustomProperty.h:
+        * css/StyleRule.h:
+        * dom/ConstantPropertyMap.h:
+        * dom/CustomElementReactionQueue.h:
+        * dom/Document.h:
+        * dom/GenericEventQueue.h:
+        * dom/RejectedPromiseTracker.h:
+        * dom/UserGestureIndicator.h:
+        * editing/ReplaceSelectionCommand.cpp:
+        * editing/SelectionRectGatherer.h:
+        * editing/TextIterator.h:
+        * editing/cocoa/HTMLConverter.mm:
+        * fileapi/AsyncFileStream.cpp:
+        * fileapi/AsyncFileStream.h:
+        * html/forms/FileIconLoader.h:
+        * html/parser/HTMLTreeBuilder.h:
+        * html/track/WebVTTParser.h:
+        * inspector/DOMPatchSupport.cpp:
+        * loader/FrameLoaderClient.h:
+        * loader/WorkerThreadableLoader.cpp:
+        * page/IntersectionObserver.h:
+        * page/PerformanceMonitor.h:
+        * page/PerformanceUserTiming.h:
+        * page/PrintContext.h:
+        * page/ValidationMessageClient.h:
+        * platform/ColorChooser.h:
+        * platform/ControlStates.h:
+        * platform/DataListSuggestionPicker.h:
+        * platform/FileStream.h:
+        * platform/KeyedCoding.h:
+        * platform/LowPowerModeNotifier.h:
+        * platform/PlatformSpeechSynthesizer.h:
+        * platform/WebGLStateTracker.h:
+        * platform/audio/AudioArray.h:
+        * platform/audio/AudioDestination.h:
+        * platform/audio/DownSampler.h:
+        * platform/audio/DynamicsCompressor.h:
+        * platform/audio/FFTFrame.h:
+        * platform/audio/HRTFDatabase.h:
+        * platform/audio/MultiChannelResampler.h:
+        * platform/audio/Panner.h:
+        * platform/audio/Reverb.h:
+        * platform/audio/ReverbConvolver.h:
+        * platform/audio/ReverbConvolverStage.h:
+        * platform/audio/UpSampler.h:
+        * platform/audio/mac/AudioSessionMac.cpp:
+        * platform/audio/mac/CAAudioStreamDescription.h:
+        * platform/audio/mac/CARingBuffer.h:
+        * platform/cocoa/ScrollSnapAnimatorState.h:
+        * platform/gamepad/PlatformGamepad.h:
+        * platform/graphics/GraphicsLayer.cpp:
+        * platform/graphics/GraphicsLayerFactory.h:
+        * platform/graphics/PlatformTimeRanges.h:
+        * platform/graphics/TextTrackRepresentation.h:
+        * platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.h:
+        * platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.h:
+        * platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h:
+        * platform/graphics/displaylists/DisplayListRecorder.h:
+        * platform/network/cocoa/WebCoreNSURLSession.mm:
+        * platform/sql/SQLiteDatabase.h:
+        * platform/text/TextCodecICU.h:
+        * rendering/GridBaselineAlignment.h:
+        * rendering/GridTrackSizingAlgorithm.h:
+        * rendering/RenderObject.h:
+        * rendering/style/GridArea.h:
+        * workers/service/context/SWContextManager.h:
+
 2019-02-07  Justin Fan  <justin_fan@apple.com>
 
         [Web GPU] GPUDevice::createTexture implementation prototype
index f93c545..0142de5 100644 (file)
@@ -45,6 +45,7 @@ struct ShippingContactUpdate;
 struct ShippingMethodUpdate;
 
 class PaymentCoordinator {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     WEBCORE_EXPORT explicit PaymentCoordinator(PaymentCoordinatorClient&);
     WEBCORE_EXPORT ~PaymentCoordinator();
index f66ebe8..3cd270f 100644 (file)
@@ -40,6 +40,7 @@ class Navigator;
 class ResourceError;
 
 class NavigatorBeacon final : public Supplement<Navigator>, private CachedRawResourceClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit NavigatorBeacon(Navigator&);
     ~NavigatorBeacon();
index 0ae9468..b727628 100644 (file)
@@ -36,6 +36,7 @@ class DOMCacheStorage;
 class ScriptExecutionContext;
 
 class DOMWindowCaches : public Supplement<DOMWindow>, public DOMWindowProperty {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit DOMWindowCaches(DOMWindow*);
 
index a50b4a3..44efc09 100644 (file)
@@ -33,6 +33,7 @@ class DOMCacheStorage;
 class WorkerGlobalScope;
 
 class WorkerGlobalScopeCaches : public Supplement<WorkerGlobalScope> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit WorkerGlobalScopeCaches(WorkerGlobalScope& scope)
         : m_scope(scope)
index 3ffcbae..b074396 100644 (file)
@@ -37,6 +37,7 @@ namespace WebCore {
 class Navigator;
 
 class NavigatorCredentials final : public Supplement<Navigator> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     NavigatorCredentials();
     virtual ~NavigatorCredentials();
index 765f064..876468b 100644 (file)
@@ -34,6 +34,7 @@ namespace WebCore {
 class LegacyCDM;
 
 class LegacyCDMPrivateClearKey : public CDMPrivateInterface {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit LegacyCDMPrivateClearKey(LegacyCDM* cdm)
         : m_cdm(cdm)
index dee01e6..2ccdbff 100644 (file)
@@ -37,6 +37,7 @@ class Navigator;
 class PlatformGamepad;
 
 class NavigatorGamepad : public Supplement<Navigator> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     NavigatorGamepad();
     virtual ~NavigatorGamepad();
index 3e96f90..baf8043 100644 (file)
@@ -36,6 +36,7 @@
 namespace WebCore {
 
 class IDBGetAllResult {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     IDBGetAllResult()
     {
index 7ec7abc..b49f9a6 100644 (file)
@@ -36,6 +36,7 @@
 namespace WebCore {
 
 class IDBGetResult {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     IDBGetResult()
         : m_isDefined(false)
index d54491d..cda6bae 100644 (file)
@@ -38,6 +38,7 @@ class KeyedDecoder;
 class KeyedEncoder;
 
 class IDBKeyData {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     IDBKeyData()
         : m_type(IndexedDB::KeyType::Invalid)
index ae044cd..d6bf25e 100644 (file)
@@ -36,6 +36,7 @@ namespace WebCore {
 class SerializedScriptValue;
 
 class IDBValue {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     WEBCORE_EXPORT IDBValue();
     IDBValue(const SerializedScriptValue&);
index 20fe465..e6b6fef 100644 (file)
@@ -41,6 +41,7 @@ class IDBConnectionProxy;
 }
 
 class WorkerGlobalScopeIndexedDatabase : public Supplement<WorkerGlobalScope> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit WorkerGlobalScopeIndexedDatabase(WorkerGlobalScope&, IDBClient::IDBConnectionProxy&);
     virtual ~WorkerGlobalScopeIndexedDatabase();
index ab350af..49abd92 100644 (file)
@@ -38,6 +38,7 @@ enum class CursorDuplicity;
 namespace IDBServer {
 
 class IndexValueEntry {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     IndexValueEntry(bool unique);
     ~IndexValueEntry();
index 86a1da5..df8cd0a 100644 (file)
@@ -45,6 +45,7 @@ class MemoryIndex;
 typedef HashMap<IDBKeyData, std::unique_ptr<IndexValueEntry>, IDBKeyDataHash, IDBKeyDataHashTraits> IndexKeyValueMap;
 
 class IndexValueStore {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     IndexValueStore(bool unique);
 
index 4ea2d32..df1a4e4 100644 (file)
@@ -45,6 +45,7 @@ class MemoryObjectStore;
 typedef HashMap<IDBKeyData, ThreadSafeDataBuffer, IDBKeyDataHash, IDBKeyDataHashTraits> KeyValueMap;
 
 class MemoryBackingStoreTransaction {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static std::unique_ptr<MemoryBackingStoreTransaction> create(MemoryIDBBackingStore&, const IDBTransactionInfo&);
 
index 64ac3e8..5b0924f 100644 (file)
@@ -38,6 +38,7 @@ class IDBResourceIdentifier;
 namespace IDBServer {
 
 class MemoryCursor {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     virtual ~MemoryCursor();
 
index fca4988..7806730 100644 (file)
@@ -39,6 +39,7 @@ namespace IDBServer {
 class MemoryObjectStore;
 
 class MemoryIDBBackingStore : public IDBBackingStore {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static std::unique_ptr<MemoryIDBBackingStore> create(const IDBDatabaseIdentifier&);
     
index da67123..14004b3 100644 (file)
@@ -46,6 +46,7 @@ namespace IDBServer {
 class SQLiteIDBCursor;
 
 class SQLiteIDBBackingStore : public IDBBackingStore {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     SQLiteIDBBackingStore(const IDBDatabaseIdentifier&, const String& databaseRootDirectory, IDBBackingStoreTemporaryFileHandler&, uint64_t quota);
     
index de89db8..f78ee76 100644 (file)
@@ -49,6 +49,7 @@ enum class ShouldFetchForSameKey : bool { No, Yes };
 class SQLiteIDBTransaction;
 
 class SQLiteIDBCursor {
+    WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(SQLiteIDBCursor);
 public:
     static std::unique_ptr<SQLiteIDBCursor> maybeCreate(SQLiteIDBTransaction&, const IDBCursorInfo&);
index a2753d6..5c8fbec 100644 (file)
@@ -48,6 +48,7 @@ class SQLiteIDBBackingStore;
 class SQLiteIDBCursor;
 
 class SQLiteIDBTransaction {
+    WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(SQLiteIDBTransaction);
 public:
     SQLiteIDBTransaction(SQLiteIDBBackingStore&, const IDBTransactionInfo&);
index d46dfa9..5e193a2 100644 (file)
@@ -73,6 +73,7 @@ typedef Function<void(const IDBError&, const IDBGetAllResult&)> GetAllResultsCal
 typedef Function<void(const IDBError&, uint64_t)> CountCallback;
 
 class UniqueIDBDatabase : public CanMakeWeakPtr<UniqueIDBDatabase> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     UniqueIDBDatabase(IDBServer&, const IDBDatabaseIdentifier&);
     UniqueIDBDatabase(UniqueIDBDatabase&) = delete;
index 53df05a..417284a 100644 (file)
@@ -33,6 +33,7 @@
 namespace WebCore {
 
 class IDBDatabaseInfo {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     IDBDatabaseInfo(const String& name, uint64_t version);
 
index 91d7810..d0dffa0 100644 (file)
@@ -42,6 +42,7 @@ class IDBConnectionToClient;
 }
 
 class IDBResourceIdentifier {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit IDBResourceIdentifier(const IDBClient::IDBConnectionProxy&);
     IDBResourceIdentifier(const IDBClient::IDBConnectionProxy&, const IDBRequest&);
index 636286c..cc25d59 100644 (file)
@@ -44,6 +44,7 @@ class IDBConnectionToClient;
 }
 
 class IDBTransactionInfo {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static IDBTransactionInfo clientTransaction(const IDBClient::IDBConnectionProxy&, const Vector<String>& objectStores, IDBTransactionMode);
     static IDBTransactionInfo versionChange(const IDBServer::IDBConnectionToClient&, const IDBDatabaseInfo& originalDatabaseInfo, uint64_t newVersion);
index 73b4c3e..2d964ad 100644 (file)
@@ -33,6 +33,7 @@ class MediaCapabilities;
 class Navigator;
 
 class NavigatorMediaCapabilities final : public Supplement<Navigator> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     NavigatorMediaCapabilities();
     ~NavigatorMediaCapabilities();
index bc20c6b..50d0bb0 100644 (file)
@@ -39,6 +39,8 @@ namespace WebCore {
 static const Seconds taskDelayInterval { 100_ms };
 
 struct ClientState {
+    WTF_MAKE_STRUCT_FAST_ALLOCATED;
+
     explicit ClientState(WebMediaSessionManagerClient& client, uint64_t contextId)
         : client(client)
         , contextId(contextId)
index 093e74c..9883cb5 100644 (file)
@@ -41,6 +41,7 @@ class MediaDevices;
 class Navigator;
 
 class NavigatorMediaDevices : public Supplement<Navigator>, public DOMWindowProperty {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit NavigatorMediaDevices(DOMWindow*);
     virtual ~NavigatorMediaDevices();
index e801019..44f7023 100644 (file)
@@ -47,6 +47,7 @@ struct RTCDataChannelInit;
 class ScriptExecutionContext;
 
 class LibWebRTCDataChannelHandler final : public RTCDataChannelHandler, private webrtc::DataChannelObserver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit LibWebRTCDataChannelHandler(rtc::scoped_refptr<webrtc::DataChannelInterface>&& channel) : m_channel(WTFMove(channel)) { ASSERT(m_channel); }
     ~LibWebRTCDataChannelHandler();
index 3124323..4b360da 100644 (file)
@@ -39,6 +39,7 @@ ALLOW_UNUSED_PARAMETERS_END
 namespace WebCore {
 
 class LibWebRTCRtpReceiverBackend final : public RTCRtpReceiverBackend {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit LibWebRTCRtpReceiverBackend(rtc::scoped_refptr<webrtc::RtpReceiverInterface>&& rtcReceiver)
         : m_rtcReceiver(WTFMove(rtcReceiver))
index ccd28a0..b069cf1 100644 (file)
@@ -45,6 +45,7 @@ namespace WebCore {
 class LibWebRTCPeerConnectionBackend;
 
 class LibWebRTCRtpSenderBackend final : public RTCRtpSenderBackend {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     LibWebRTCRtpSenderBackend(LibWebRTCPeerConnectionBackend& backend, rtc::scoped_refptr<webrtc::RtpSenderInterface>&& rtcSender)
         : m_peerConnectionBackend(makeWeakPtr(&backend))
index 5ad569e..5d2b325 100644 (file)
@@ -42,6 +42,7 @@ namespace WebCore {
 class LibWebRTCRtpReceiverBackend;
 
 class LibWebRTCRtpTransceiverBackend final : public RTCRtpTransceiverBackend {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit LibWebRTCRtpTransceiverBackend(rtc::scoped_refptr<webrtc::RtpTransceiverInterface>&& rtcTransceiver)
         : m_rtcTransceiver(WTFMove(rtcTransceiver))
index bf26477..59caba5 100644 (file)
@@ -40,6 +40,7 @@ class Navigator;
 typedef int ExceptionCode;
 
 class NavigatorContentUtils final : public Supplement<Page> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit NavigatorContentUtils(std::unique_ptr<NavigatorContentUtilsClient> client)
         : m_client(WTFMove(client))
index 62d0812..fa9c745 100644 (file)
@@ -41,6 +41,7 @@ class DOMWindow;
 class StorageInfo;
 
 class DOMWindowQuota : public Supplement<DOMWindow>, public DOMWindowProperty {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit DOMWindowQuota(DOMWindow*);
     virtual ~DOMWindowQuota();
index f88ac7f..486471c 100644 (file)
@@ -41,6 +41,7 @@ class StorageQuota;
 class Navigator;
 
 class NavigatorStorageQuota : public Supplement<Navigator>, public DOMWindowProperty {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit NavigatorStorageQuota(DOMWindow*);
     virtual ~NavigatorStorageQuota();
index 16fde02..1cb8c84 100644 (file)
@@ -41,6 +41,7 @@ class StorageQuota;
 class WorkerNavigator;
 
 class WorkerNavigatorStorageQuota : public Supplement<WorkerNavigator> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit WorkerNavigatorStorageQuota();
     virtual ~WorkerNavigatorStorageQuota();
index a381093..9ab7440 100644 (file)
@@ -36,6 +36,7 @@ namespace WebCore {
 class DOMWindow;
 
 class DOMWindowSpeechSynthesis : public Supplement<DOMWindow>, public DOMWindowProperty {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit DOMWindowSpeechSynthesis(DOMWindow*);
     virtual ~DOMWindowSpeechSynthesis();
index 32abef8..adbeec4 100644 (file)
@@ -48,6 +48,7 @@ enum class BiquadFilterType {
 };
 
 class BiquadProcessor final : public AudioDSPKernelProcessor {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     BiquadProcessor(AudioContext&, float sampleRate, size_t numberOfChannels, bool autoInitialize);
 
index 3d9c17d..85d9cc6 100644 (file)
@@ -34,6 +34,7 @@ namespace WebCore {
 class AudioDSPKernel;
     
 class DelayProcessor final : public AudioDSPKernelProcessor {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     DelayProcessor(AudioContext&, float sampleRate, unsigned numberOfChannels, double maxDelayTime);
     virtual ~DelayProcessor();
index 18fcade..217d83b 100644 (file)
@@ -44,6 +44,7 @@ namespace fido {
 // FidoHidInitPacket cannot store the entire payload, further payload
 // information is stored in HidContinuationPackets.
 class WEBCORE_EXPORT FidoHidPacket {
+    WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(FidoHidPacket);
 public:
     FidoHidPacket(Vector<uint8_t>&& data, uint32_t channelId);
index d66271f..7994ce8 100644 (file)
@@ -32,6 +32,7 @@ namespace WebCore {
 class Navigator;
 
 class NavigatorWebDriver final : public Supplement<Navigator> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     NavigatorWebDriver();
     virtual ~NavigatorWebDriver();
index 8eec430..f1bd2d0 100644 (file)
@@ -36,6 +36,7 @@ class DOMWindow;
 class WebGPU;
 
 class DOMWindowWebGPU : public Supplement<DOMWindow>, public DOMWindowProperty {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit DOMWindowWebGPU(DOMWindow*);
     virtual ~DOMWindowWebGPU() = default;
index 1131ea6..68ce533 100644 (file)
@@ -153,6 +153,8 @@ private:
         QueuedFrameTypeBlob
     };
     struct QueuedFrame {
+        WTF_MAKE_STRUCT_FAST_ALLOCATED;
+
         WebSocketFrame::OpCode opCode;
         QueuedFrameType frameType;
         // Only one of the following items is used, according to the value of frameType.
index be059b8..5610ba1 100644 (file)
@@ -37,6 +37,7 @@ class Page;
 class VRDisplay;
 
 class NavigatorWebVR final : public Supplement<Navigator> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     using GetVRDisplaysPromise = DOMPromiseDeferred<IDLSequence<IDLInterface<VRDisplay>>>;
 
index 0486533..8d7d1d2 100644 (file)
@@ -1,3 +1,13 @@
+2019-02-07  Chris Dumez  <cdumez@apple.com>
+
+        Mark more heap-allocated classes as fast allocated
+        https://bugs.webkit.org/show_bug.cgi?id=194422
+
+        Reviewed by Ryosuke Niwa.
+
+        * pal/crypto/openssl/CryptoDigestOpenSSL.cpp:
+        * pal/system/Clock.h:
+
 2019-02-05  Ryan Haddad  <ryanhaddad@apple.com>
 
         Unreviewed, rolling out r240742.
index 43ecf56..bc23d59 100644 (file)
@@ -75,6 +75,8 @@ struct CryptoDigestContext {
 
 template <typename SHAContext, typename SHAFunctions>
 struct CryptoDigestContextImpl : public CryptoDigestContext {
+    WTF_MAKE_STRUCT_FAST_ALLOCATED;
+
     static std::unique_ptr<CryptoDigestContext> create()
     {
         return std::make_unique<CryptoDigestContextImpl>();
index 84a95bf..50860ad 100644 (file)
@@ -31,6 +31,7 @@
 namespace PAL {
 
 class Clock {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static std::unique_ptr<Clock> create();
     virtual ~Clock() = default;
index cf0a183..d6e7eff 100644 (file)
@@ -91,6 +91,7 @@ struct CharacterOffset {
 };
 
 class AXComputedObjectAttributeCache {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     AccessibilityObjectInclusion getIgnored(AXID) const;
     void setIgnored(AXID, AccessibilityObjectInclusion);
index f03c4fc..caec0d0 100644 (file)
@@ -34,6 +34,7 @@ namespace WebCore {
 class JSVMClientData;
 
 class DOMGCOutputConstraint : public JSC::MarkingConstraint {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     DOMGCOutputConstraint(JSC::VM&, JSVMClientData&);
     ~DOMGCOutputConstraint();
index 48ac3f9..7da46a6 100644 (file)
@@ -36,6 +36,7 @@ namespace WebCore {
 
 template<typename IDLType>
 class DOMPromiseProxy {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     using Value = typename IDLType::StorageType;
 
index 219fefe..7e8979b 100644 (file)
@@ -48,8 +48,7 @@ private:
 };
 
 
-class CMethod : public Method
-{
+class CMethod : public Method {
 public:
     CMethod(NPIdentifier ident) : _methodIdentifier(ident) { }
 
index 7558b22..83d44e0 100644 (file)
@@ -46,6 +46,8 @@ struct PrefixTreeEdge {
 typedef Vector<PrefixTreeEdge, 0, WTF::CrashOnOverflow, 1> PrefixTreeEdges;
 
 struct PrefixTreeVertex {
+    WTF_MAKE_STRUCT_FAST_ALLOCATED;
+
     PrefixTreeEdges edges;
 };
 
index 41d3f61..8398404 100644 (file)
@@ -34,6 +34,7 @@
 namespace WebCore {
 
 class CryptoAlgorithmParameters {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     enum class Class {
         None,
index 6bfc647..1cf7a02 100644 (file)
@@ -50,6 +50,7 @@ enum EUpdateLayout { DoNotUpdateLayout = false, UpdateLayout = true };
 enum AdjustPixelValuesForComputedStyle { AdjustPixelValues, DoNotAdjustPixelValues };
 
 class ComputedStyleExtractor {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     ComputedStyleExtractor(Node*, bool allowVisitedStyle = false, PseudoId = PseudoId::None);
     ComputedStyleExtractor(Element*, bool allowVisitedStyle = false, PseudoId = PseudoId::None);
index dfcf0bd..217f149 100644 (file)
@@ -32,6 +32,8 @@ namespace WebCore {
 class CSSCustomPropertyValue;
 
 struct CSSRegisteredCustomProperty {
+    WTF_MAKE_STRUCT_FAST_ALLOCATED;
+
     const String name;
     const String syntax;
     const bool inherits;
index a2cb373..f865ec4 100644 (file)
@@ -39,6 +39,7 @@ class Worklet;
 class DOMCSSNamespace;
 
 class DOMCSSPaintWorklet final : public Supplement<DOMCSSNamespace> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit DOMCSSPaintWorklet(DOMCSSNamespace&) { }
 
index ee9988a..8641656 100644 (file)
@@ -35,6 +35,7 @@ class Document;
 class DOMCSSNamespace;
 
 class DOMCSSRegisterCustomProperty final : public Supplement<DOMCSSNamespace> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit DOMCSSRegisterCustomProperty(DOMCSSNamespace&) { }
 
index 7180523..401d049 100644 (file)
@@ -220,6 +220,7 @@ private:
 };
 
 class DeferredStyleGroupRuleList final {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     DeferredStyleGroupRuleList(const CSSParserTokenRange&, CSSDeferredParser&);
     
index befc896..d26fb98 100644 (file)
@@ -51,6 +51,7 @@ enum class ConstantProperty {
 };
 
 class ConstantPropertyMap {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit ConstantPropertyMap(Document&);
 
index a7f8002..c82c607 100644 (file)
@@ -45,6 +45,7 @@ class JSCustomElementInterface;
 class QualifiedName;
 
 class CustomElementReactionQueue {
+    WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(CustomElementReactionQueue);
 public:
     CustomElementReactionQueue(JSCustomElementInterface&);
index 9e325a9..9bdf1b8 100644 (file)
@@ -332,6 +332,7 @@ using RenderingContext = Variant<
 >;
 
 class DocumentParserYieldToken {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     WEBCORE_EXPORT DocumentParserYieldToken(Document&);
     WEBCORE_EXPORT ~DocumentParserYieldToken();
index db3b455..e498cfa 100644 (file)
@@ -37,6 +37,7 @@ class EventTarget;
 class Timer;
 
 class GenericEventQueue {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit GenericEventQueue(EventTarget&);
     ~GenericEventQueue();
index 31a4556..87fd556 100644 (file)
@@ -44,6 +44,7 @@ class ScriptExecutionContext;
 class UnhandledPromise;
 
 class RejectedPromiseTracker {
+    WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(RejectedPromiseTracker);
 public:
     explicit RejectedPromiseTracker(ScriptExecutionContext&, JSC::VM&);
index 5a1cb9e..c18cdc0 100644 (file)
@@ -76,6 +76,7 @@ private:
 };
 
 class UserGestureIndicator {
+    WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(UserGestureIndicator);
 public:
     WEBCORE_EXPORT static RefPtr<UserGestureToken> currentUserGesture();
index 47d60db..7311b2a 100644 (file)
@@ -75,6 +75,7 @@ static void removeHeadContents(ReplacementFragment&);
 // --- ReplacementFragment helper class
 
 class ReplacementFragment {
+    WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(ReplacementFragment);
 public:
     ReplacementFragment(Document&, DocumentFragment*, const VisibleSelection&);
index 047cf16..b85ba24 100644 (file)
@@ -50,6 +50,7 @@ public:
     bool isTextOnly() const { return m_isTextOnly; }
 
     class Notifier {
+        WTF_MAKE_FAST_ALLOCATED;
         WTF_MAKE_NONCOPYABLE(Notifier);
     public:
         Notifier(SelectionRectGatherer&);
index c279ae5..2601274 100644 (file)
@@ -100,6 +100,7 @@ private:
 // the chunks it's already stored in, to avoid copying any text.
 
 class TextIterator {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit TextIterator(Position start, Position end, TextIteratorBehavior = TextIteratorDefaultBehavior);
     WEBCORE_EXPORT explicit TextIterator(const Range*, TextIteratorBehavior = TextIteratorDefaultBehavior);
index c86fd73..ead5dca 100644 (file)
@@ -239,6 +239,7 @@ static const CGFloat defaultFontSize = 12;
 static const CGFloat minimumFontSize = 1;
 
 class HTMLConverterCaches {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     String propertyValueForNode(Node&, CSSPropertyID );
     bool floatPropertyValueForNode(Node&, CSSPropertyID, float&);
index 9c9eccb..a095eea 100644 (file)
@@ -46,6 +46,8 @@
 namespace WebCore {
 
 struct AsyncFileStream::Internals {
+    WTF_MAKE_STRUCT_FAST_ALLOCATED;
+
     explicit Internals(FileStreamClient&);
 
     FileStream stream;
index 9c1bb8f..84a241a 100644 (file)
@@ -41,6 +41,7 @@ class FileStreamClient;
 class FileStream;
 
 class WEBCORE_EXPORT AsyncFileStream {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit AsyncFileStream(FileStreamClient&);
     ~AsyncFileStream();
index c1ad3ea..94f0acf 100644 (file)
@@ -43,6 +43,7 @@ public:
 };
 
 class FileIconLoader {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit FileIconLoader(FileIconLoaderClient&);
 
index 533017a..4a5e2b4 100644 (file)
@@ -38,6 +38,8 @@ class HTMLDocumentParser;
 class ScriptElement;
 
 struct CustomElementConstructionData {
+    WTF_MAKE_STRUCT_FAST_ALLOCATED;
+
     CustomElementConstructionData(Ref<JSCustomElementInterface>&&, const AtomicString& name, Vector<Attribute>&&);
     ~CustomElementConstructionData();
 
index 2502fff..cfc5717 100644 (file)
@@ -97,6 +97,7 @@ private:
 };
 
 class WebVTTParser final {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     enum ParseState {
         Initial,
index c8dba02..20da343 100644 (file)
@@ -58,6 +58,8 @@ using HTMLNames::headTag;
 using HTMLNames::htmlTag;
 
 struct DOMPatchSupport::Digest {
+    WTF_MAKE_STRUCT_FAST_ALLOCATED;
+
     String sha1;
     String attrsSHA1;
     Node* node;
index 915c09d..0f34296 100644 (file)
@@ -110,6 +110,7 @@ struct StringWithDirection;
 typedef WTF::Function<void (PolicyAction, PolicyCheckIdentifier)> FramePolicyFunction;
 
 class WEBCORE_EXPORT FrameLoaderClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     // An inline function cannot be the first non-abstract virtual function declared
     // in the class as it results in the vtable being generated as a weak symbol.
index 4bad183..66d3834 100644 (file)
@@ -89,6 +89,8 @@ void WorkerThreadableLoader::cancel()
 }
 
 struct LoaderTaskOptions {
+    WTF_MAKE_STRUCT_FAST_ALLOCATED;
+
     LoaderTaskOptions(const ThreadableLoaderOptions&, const String&, Ref<SecurityOrigin>&&);
     ThreadableLoaderOptions options;
     String referrer;
index 570227c..7c9854b 100644 (file)
@@ -48,6 +48,8 @@ struct IntersectionObserverRegistration {
 };
 
 struct IntersectionObserverData {
+    WTF_MAKE_STRUCT_FAST_ALLOCATED;
+
     // IntersectionObservers for which the element that owns this IntersectionObserverData is the root.
     // An IntersectionObserver is only owned by a JavaScript wrapper. ActiveDOMObject::hasPendingActivity
     // is overridden to keep this wrapper alive while the observer has ongoing observations.
index 64fd856..855fe6e 100644 (file)
@@ -35,6 +35,7 @@ namespace WebCore {
 class Page;
 
 class PerformanceMonitor {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit PerformanceMonitor(Page&);
 
index a6448bc..f7fcd22 100644 (file)
@@ -38,6 +38,7 @@ class Performance;
 using PerformanceEntryMap = HashMap<String, Vector<RefPtr<PerformanceEntry>>>;
 
 class UserTiming {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit UserTiming(Performance&);
 
index 9c5b632..ab3b41b 100644 (file)
@@ -38,6 +38,7 @@ class IntRect;
 class Node;
 
 class PrintContext : public FrameDestructionObserver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     WEBCORE_EXPORT explicit PrintContext(Frame*);
     WEBCORE_EXPORT ~PrintContext();
index 47de0fb..5bf1838 100644 (file)
@@ -33,6 +33,7 @@ class Document;
 class Element;
 
 class ValidationMessageClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     virtual ~ValidationMessageClient() = default;
 
index 4ce7c30..754bc66 100644 (file)
@@ -37,6 +37,7 @@ namespace WebCore {
 class Color;
 
 class ColorChooser {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     virtual ~ColorChooser() = default;
 
index 9db97c5..b37ff49 100644 (file)
@@ -42,6 +42,7 @@ typedef id PlatformControlInstance;
 #endif
 
 class ControlStates {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     enum {
         HoverState = 1,
index 9ce192a..468ca66 100644 (file)
@@ -35,6 +35,7 @@
 namespace WebCore {
 
 class DataListSuggestionPicker {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     virtual ~DataListSuggestionPicker() = default;
 
index a2fb8e5..5e5ee0e 100644 (file)
@@ -36,6 +36,7 @@ namespace WebCore {
 
 // All methods are synchronous.
 class FileStream {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     FileStream();
     ~FileStream();
index 21d4cef..75bbe6d 100644 (file)
@@ -34,6 +34,7 @@ namespace WebCore {
 class SharedBuffer;
 
 class KeyedDecoder {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     WEBCORE_EXPORT static std::unique_ptr<KeyedDecoder> decoder(const uint8_t* data, size_t);
 
@@ -143,6 +144,7 @@ private:
 };
 
 class KeyedEncoder {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     WEBCORE_EXPORT static std::unique_ptr<KeyedEncoder> encoder();
 
index 6b4b447..2b05a9c 100644 (file)
@@ -40,6 +40,7 @@ typedef struct _GDBusProxy GDBusProxy;
 namespace WebCore {
 
 class LowPowerModeNotifier {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     using LowPowerModeChangeCallback = WTF::Function<void(bool isLowPowerModeEnabled)>;
     WEBCORE_EXPORT explicit LowPowerModeNotifier(LowPowerModeChangeCallback&&);
index 90dfe9c..63c9458 100644 (file)
@@ -59,6 +59,7 @@ protected:
 };
 
 class WEBCORE_EXPORT PlatformSpeechSynthesizer {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     WEBCORE_EXPORT explicit PlatformSpeechSynthesizer(PlatformSpeechSynthesizerClient*);
 
index 6acf2dd..c90c01b 100644 (file)
@@ -32,6 +32,7 @@
 namespace WebCore {
 
 class WebGLStateTracker {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     using StateChangeHandler = WTF::Function<void(bool isUsingWebGL)>;
     WEBCORE_EXPORT explicit WebGLStateTracker(StateChangeHandler&&);
index 1d60f46..210b038 100644 (file)
@@ -37,6 +37,7 @@ namespace WebCore {
 
 template<typename T>
 class AudioArray {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     AudioArray() : m_allocation(0), m_alignedData(0), m_size(0) { }
     explicit AudioArray(size_t n) : m_allocation(0), m_alignedData(0), m_size(0)
index 2065ac4..2cbaf48 100644 (file)
@@ -41,6 +41,7 @@ class AudioIOCallback;
 // It optionally will pass in local/live audio input when it calls render().
 
 class AudioDestination {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     // Pass in (numberOfInputChannels > 0) if live/local audio input is desired.
     // Port-specific device identification information for live/local input streams can be passed in the inputDeviceId.
index 7a556ac..a671c6f 100644 (file)
@@ -37,6 +37,7 @@ namespace WebCore {
 // DownSampler down-samples the source stream by a factor of 2x.
 
 class DownSampler {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     DownSampler(size_t inputBlockSize);
 
index f716cef..ef8c093 100644 (file)
@@ -44,6 +44,7 @@ class AudioBus;
 // making the sound richer, fuller, and more controlled.
 
 class DynamicsCompressor {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     enum {
         ParamThreshold,
index 727c92a..ca1eee6 100644 (file)
@@ -52,6 +52,7 @@ namespace WebCore {
 // and reverse FFT, internally storing the resultant frequency-domain data.
 
 class FFTFrame {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     // The constructors, destructor, and methods up to the CROSS-PLATFORM section have platform-dependent implementations.
 
index 209b6c4..757bcfa 100644 (file)
@@ -40,6 +40,7 @@ namespace WebCore {
 class HRTFKernel;
 
 class HRTFDatabase {
+    WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(HRTFDatabase);
 public:
     explicit HRTFDatabase(float sampleRate);
index 6afa514..629d57f 100644 (file)
@@ -38,6 +38,7 @@ namespace WebCore {
 class AudioBus;
     
 class MultiChannelResampler {
+    WTF_MAKE_FAST_ALLOCATED;
 public:   
     MultiChannelResampler(double scaleFactor, unsigned numberOfChannels);
     
index 2700c4c..a680da1 100644 (file)
@@ -44,6 +44,7 @@ enum class PanningModelType {
 // Abstract base class for panning a mono or stereo source.
 
 class Panner {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static std::unique_ptr<Panner> create(PanningModelType, float sampleRate, HRTFDatabaseLoader*);
 
index 77c34fe..3e2576b 100644 (file)
@@ -39,6 +39,7 @@ class AudioBus;
 // Multi-channel convolution reverb with channel matrixing - one or more ReverbConvolver objects are used internally.
 
 class Reverb {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     enum { MaxFrameSize = 256 };
 
index d41f3c9..5b819e1 100644 (file)
@@ -44,6 +44,7 @@ namespace WebCore {
 class AudioChannel;
 
 class ReverbConvolver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     // maxFFTSize can be adjusted (from say 2048 to 32768) depending on how much precision is necessary.
     // For certain tweaky de-convolving applications the phase errors add up quickly and lead to non-sensical results with
index fd9e692..a049097 100644 (file)
@@ -43,6 +43,7 @@ class DirectConvolver;
 // A ReverbConvolverStage represents the convolution associated with a sub-section of a large impulse response.
 // It incorporates a delay line to account for the offset of the sub-section within the larger impulse response.
 class ReverbConvolverStage {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     // renderPhase is useful to know so that we can manipulate the pre versus post delay so that stages will perform
     // their heavy work (FFT processing) on different slices to balance the load in a real-time thread.
index 8b9c73d..205b62e 100644 (file)
@@ -37,6 +37,7 @@ namespace WebCore {
 // UpSampler up-samples the source stream by a factor of 2x.
 
 class UpSampler {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     UpSampler(size_t inputBlockSize);
 
index 5537c21..b6e3ed0 100644 (file)
@@ -53,6 +53,7 @@ static AudioDeviceID defaultDevice()
 }
 
 class AudioSessionPrivate {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     AudioSessionPrivate(bool mutedState)
         : lastMutedState(mutedState) { }
index 032b697..33af4c3 100644 (file)
@@ -34,6 +34,8 @@ WEBCORE_EXPORT bool operator==(const AudioStreamBasicDescription&, const AudioSt
 inline bool operator!=(const AudioStreamBasicDescription& a, const AudioStreamBasicDescription& b) { return !(a == b); }
 
 class CAAudioStreamDescription final : public AudioStreamDescription {
+    WTF_MAKE_FAST_ALLOCATED;
+
 public:
 
     WEBCORE_EXPORT CAAudioStreamDescription();
index c8ca7db..18a26ab 100644 (file)
@@ -58,6 +58,7 @@ private:
 };
 
 class CARingBuffer {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     WEBCORE_EXPORT CARingBuffer();
     WEBCORE_EXPORT CARingBuffer(UniqueRef<CARingBufferStorage>&&);
index 150db0b..1c38dda 100644 (file)
@@ -48,6 +48,7 @@ enum class ScrollSnapState {
 };
 
 class ScrollSnapAnimatorState {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     const Vector<LayoutUnit>& snapOffsetsForAxis(ScrollEventAxis axis) const
     {
index 65f91cc..60c4cb3 100644 (file)
@@ -34,6 +34,7 @@
 namespace WebCore {
 
 class PlatformGamepad {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     virtual ~PlatformGamepad() = default;
 
index e23ef03..08f013d 100644 (file)
@@ -112,6 +112,7 @@ bool GraphicsLayer::supportsContentsTiling()
 
 // Singleton client used for layers on which clearClient has been called.
 class EmptyGraphicsLayerClient : public GraphicsLayerClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static EmptyGraphicsLayerClient& singleton();
 };
index a7e6104..b7b88c0 100644 (file)
@@ -31,6 +31,7 @@
 namespace WebCore {
 
 class GraphicsLayerFactory {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     virtual ~GraphicsLayerFactory() = default;
 
index abe4da0..1888695 100644 (file)
@@ -37,6 +37,7 @@ class PrintStream;
 namespace WebCore {
 
 class PlatformTimeRanges {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit PlatformTimeRanges() { }
     PlatformTimeRanges(const MediaTime& start, const MediaTime& end);
index 3cde73a..5dc255d 100644 (file)
@@ -45,6 +45,7 @@ public:
 };
 
 class TextTrackRepresentation {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     static std::unique_ptr<TextTrackRepresentation> create(TextTrackRepresentationClient&);
 
index 68b8c8a..48a7808 100644 (file)
@@ -41,6 +41,7 @@ namespace WebCore {
 class CDMPrivateMediaSourceAVFObjC;
 
 class CDMSessionAVContentKeySession : public CDMSessionMediaSourceAVFObjC {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     CDMSessionAVContentKeySession(const Vector<int>& protocolVersions, CDMPrivateMediaSourceAVFObjC&, LegacyCDMSessionClient*);
     virtual ~CDMSessionAVContentKeySession();
index 0797ab2..1c2ec57 100644 (file)
@@ -41,6 +41,7 @@ namespace WebCore {
 class CDMPrivateMediaSourceAVFObjC;
 
 class CDMSessionAVStreamSession : public CDMSessionMediaSourceAVFObjC, public CanMakeWeakPtr<CDMSessionAVStreamSession> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     CDMSessionAVStreamSession(const Vector<int>& protocolVersions, CDMPrivateMediaSourceAVFObjC&, LegacyCDMSessionClient*);
     virtual ~CDMSessionAVStreamSession();
index 6fda29e..642df65 100644 (file)
@@ -37,6 +37,7 @@ OBJC_CLASS WebAVOutputDeviceMenuControllerHelper;
 namespace WebCore {
 
 class MediaPlaybackTargetPickerMac final : public MediaPlaybackTargetPicker {
+    WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(MediaPlaybackTargetPickerMac);
 public:
     explicit MediaPlaybackTargetPickerMac(MediaPlaybackTargetPicker::Client&);
index b69d44e..49e9181 100644 (file)
@@ -48,6 +48,7 @@ namespace DisplayList {
 class DrawingItem;
 
 class Recorder : public GraphicsContextImpl {
+    WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(Recorder);
 public:
     Recorder(GraphicsContext&, DisplayList&, const GraphicsContextState&, const FloatRect& initialClip, const AffineTransform&);
index 17e6167..9bcefac 100644 (file)
@@ -373,6 +373,7 @@ NS_ASSUME_NONNULL_END
 namespace WebCore {
 
 class WebCoreNSURLSessionDataTaskClient : public PlatformMediaResourceClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     WebCoreNSURLSessionDataTaskClient(WebCoreNSURLSessionDataTask *task)
         : m_task(task)
index acec549..57d2ad8 100644 (file)
@@ -46,6 +46,7 @@ class SQLiteStatement;
 class SQLiteTransaction;
 
 class SQLiteDatabase {
+    WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(SQLiteDatabase);
     friend class SQLiteTransaction;
 public:
index abfd709..54599f6 100644 (file)
@@ -59,9 +59,9 @@ private:
 };
 
 struct ICUConverterWrapper {
-    ICUConverterPtr converter { nullptr, ucnv_close };
+    WTF_MAKE_STRUCT_FAST_ALLOCATED;
 
-    WTF_MAKE_FAST_ALLOCATED;
+    ICUConverterPtr converter { nullptr, ucnv_close };
 };
 
 } // namespace WebCore
index 9dd49fe..f515d80 100644 (file)
@@ -93,6 +93,7 @@ private:
 // if there is one that is compatible with such item. Otherwise, a new baseline-sharing group is created,
 // compatible with the new item.
 class BaselineContext {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     BaselineContext(const RenderBox& child, ItemPosition preference, LayoutUnit ascent, LayoutUnit descent);
     const BaselineGroup& sharedGroup(const RenderBox& child, ItemPosition preference) const;
index 899573c..75b101e 100644 (file)
@@ -242,6 +242,7 @@ private:
 };
 
 class GridTrackSizingAlgorithmStrategy {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     LayoutUnit minContentForChild(RenderBox&) const;
     LayoutUnit maxContentForChild(RenderBox&) const;
index d08c1db..87e8801 100644 (file)
@@ -981,6 +981,7 @@ private:
 
     // FIXME: This should be RenderElementRareData.
     class RenderObjectRareData {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         RenderObjectRareData()
             : m_isDragging(false)
index 81e66b2..db80185 100644 (file)
@@ -169,6 +169,7 @@ private:
 
 // This represents a grid area that spans in both rows' and columns' direction.
 class GridArea {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     // HashMap requires a default constuctor.
     GridArea()
index d24dd3e..f97ee6a 100644 (file)
@@ -45,6 +45,7 @@ public:
     WEBCORE_EXPORT static SWContextManager& singleton();
 
     class Connection {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         virtual ~Connection() { }
 
@@ -93,6 +94,7 @@ private:
     ServiceWorkerCreationCallback* m_serviceWorkerCreationCallback { nullptr };
 
     class ServiceWorkerTerminationRequest {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         ServiceWorkerTerminationRequest(SWContextManager&, ServiceWorkerIdentifier, Seconds timeout);
 
index 96becef..a828085 100644 (file)
@@ -1,3 +1,57 @@
+2019-02-07  Chris Dumez  <cdumez@apple.com>
+
+        Mark more heap-allocated classes as fast allocated
+        https://bugs.webkit.org/show_bug.cgi?id=194422
+
+        Reviewed by Ryosuke Niwa.
+
+        * NetworkProcess/NetworkLoad.cpp:
+        * NetworkProcess/NetworkLoadChecker.h:
+        * NetworkProcess/NetworkResourceLoader.cpp:
+        * Platform/IPC/Connection.h:
+        * Platform/IPC/mac/ImportanceAssertion.h:
+        * PluginProcess/PluginCreationParameters.h:
+        * Shared/API/Cocoa/RemoteObjectRegistry.h:
+        * Shared/WebEvent.h:
+        * UIProcess/API/APIHTTPCookieStore.cpp:
+        * UIProcess/API/APINotificationProvider.h:
+        * UIProcess/API/Cocoa/PageLoadStateObserver.h:
+        * UIProcess/API/Cocoa/WKHTTPCookieStore.mm:
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _setInputDelegate:]):
+        * UIProcess/API/gtk/PageClientImpl.h:
+        * UIProcess/BackingStore.h:
+        * UIProcess/Cocoa/AutomationClient.h:
+        * UIProcess/Cocoa/DiagnosticLoggingClient.h:
+        * UIProcess/Cocoa/DownloadClient.h:
+        * UIProcess/Cocoa/FindClient.h:
+        * UIProcess/Cocoa/NavigationState.h:
+        * UIProcess/Cocoa/UIDelegate.h:
+        * UIProcess/Cocoa/ViewGestureController.h:
+        * UIProcess/DeviceIdHashSaltStorage.h:
+        * UIProcess/Downloads/DownloadProxyMap.h:
+        * UIProcess/Gamepad/UIGamepad.h:
+        * UIProcess/Notifications/WebNotificationProvider.h:
+        * UIProcess/ProcessAssertion.h:
+        * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h:
+        * UIProcess/WebContextInjectedBundleClient.h:
+        * UIProcess/WebFormClient.h:
+        * UIProcess/WebGeolocationProvider.h:
+        * UIProcess/WebPageProxy.h:
+        * WebProcess/Automation/WebAutomationSessionProxy.h:
+        * WebProcess/InjectedBundle/API/APIInjectedBundleBundleClient.h:
+        * WebProcess/InjectedBundle/API/APIInjectedBundleEditorClient.h:
+        * WebProcess/InjectedBundle/API/APIInjectedBundlePageContextMenuClient.h:
+        * WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h:
+        * WebProcess/InjectedBundle/API/APIInjectedBundlePageResourceLoadClient.h:
+        * WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h:
+        * WebProcess/InjectedBundle/APIInjectedBundleFormClient.h:
+        * WebProcess/Network/webrtc/LibWebRTCNetwork.h:
+        * WebProcess/Network/webrtc/LibWebRTCSocket.h:
+        * WebProcess/Network/webrtc/WebRTCResolver.h:
+        * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
+        * WebProcess/WebPage/DrawingArea.h:
+
 2019-02-07  Wenson Hsieh  <wenson_hsieh@apple.com>
 
         [iOS] [WK2] Modernize code for applying autocorrection
index b0b1414..fd62a14 100644 (file)
@@ -38,6 +38,8 @@ namespace WebKit {
 using namespace WebCore;
 
 struct NetworkLoad::Throttle {
+    WTF_MAKE_STRUCT_FAST_ALLOCATED;
+
     Throttle(NetworkLoad& load, Seconds delay, ResourceResponse&& response, ResponseCompletionHandler&& handler)
         : timer(load, &NetworkLoad::throttleDelayCompleted)
         , response(WTFMove(response))
index c95cd4c..d7e02a5 100644 (file)
@@ -50,6 +50,7 @@ class NetworkCORSPreflightChecker;
 class NetworkProcess;
 
 class NetworkLoadChecker : public CanMakeWeakPtr<NetworkLoadChecker> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     enum class LoadType : bool { MainFrame, Other };
 
index 591a74e..ee88695 100644 (file)
@@ -64,6 +64,8 @@ namespace WebKit {
 using namespace WebCore;
 
 struct NetworkResourceLoader::SynchronousLoadData {
+    WTF_MAKE_STRUCT_FAST_ALLOCATED;
+
     SynchronousLoadData(Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply&& reply)
         : delayedReply(WTFMove(reply))
     {
index e81e81e..0ca3a3f 100644 (file)
@@ -263,6 +263,7 @@ private:
 #endif
 
     class MessagesThrottler {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         typedef void (Connection::*DispatchMessagesFunction)();
         MessagesThrottler(Connection&, DispatchMessagesFunction);
index d9765d1..6f90b04 100644 (file)
@@ -33,6 +33,7 @@
 namespace IPC {
 
 class ImportanceAssertion {
+    WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(ImportanceAssertion);
 
 public:
index c375168..e6678e9 100644 (file)
@@ -38,6 +38,8 @@ class Encoder;
 namespace WebKit {
 
 struct PluginCreationParameters {
+    WTF_MAKE_FAST_ALLOCATED;
+public:
     PluginCreationParameters();
 
     void encode(IPC::Encoder&) const;
index 2c9d99b..a72f018 100644 (file)
@@ -44,6 +44,7 @@ class WebPage;
 class WebPageProxy;
 
 class RemoteObjectRegistry final : public IPC::MessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     RemoteObjectRegistry(_WKRemoteObjectRegistry *, WebPage&);
     RemoteObjectRegistry(_WKRemoteObjectRegistry *, WebPageProxy&);
index 96572c5..b42539e 100644 (file)
@@ -52,6 +52,7 @@ struct KeypressCommand;
 namespace WebKit {
 
 class WebEvent {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     enum Type {
         NoType = -1,
index 42fc6ac..2e917fb 100644 (file)
@@ -118,6 +118,7 @@ void HTTPCookieStore::deleteCookie(const WebCore::Cookie& cookie, CompletionHand
 }
 
 class APIWebCookieManagerProxyObserver : public WebCookieManagerProxy::Observer {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit APIWebCookieManagerProxyObserver(API::HTTPCookieStore& cookieStore)
         : m_cookieStore(cookieStore)
index 9be8e8c..c4813aa 100644 (file)
@@ -38,6 +38,7 @@ class WebPageProxy;
 namespace API {
 
 class NotificationProvider {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     virtual ~NotificationProvider() = default;
 
index 6828050..0472740 100644 (file)
@@ -31,6 +31,7 @@
 namespace WebKit {
 
 class PageLoadStateObserver : public PageLoadState::Observer {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     PageLoadStateObserver(id object, NSString *activeURLKey = @"activeURL")
         : m_object(object)
index c858033..52d2bab 100644 (file)
@@ -47,6 +47,7 @@ static NSArray<NSHTTPCookie *> *coreCookiesToNSCookies(const Vector<WebCore::Coo
 }
 
 class WKHTTPCookieStoreObserver : public API::HTTPCookieStore::Observer {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit WKHTTPCookieStoreObserver(id<WKHTTPCookieStoreObserver> observer)
         : m_observer(observer)
index 0c16bae..171fcde 100644 (file)
@@ -5383,6 +5383,7 @@ static inline WebKit::FindOptions toFindOptions(_WKFindOptions wkFindOptions)
     _inputDelegate = inputDelegate;
 
     class FormClient : public API::FormClient {
+        WTF_MAKE_FAST_ALLOCATED;
     public:
         explicit FormClient(WKWebView *webView)
             : m_webView(webView)
index 6dea8f3..d27842e 100644 (file)
@@ -48,6 +48,7 @@ class PageClientImpl : public PageClient
     , public WebFullScreenManagerProxyClient
 #endif
 {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit PageClientImpl(GtkWidget*);
 
index 14de1f4..987cc16 100644 (file)
@@ -40,6 +40,7 @@ class UpdateInfo;
 class WebPageProxy;
 
 class BackingStore {
+    WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(BackingStore);
 
 public:
index 565e6ba..e663d1c 100644 (file)
@@ -40,6 +40,7 @@
 namespace WebKit {
 
 class AutomationClient final : public API::AutomationClient, Inspector::RemoteInspector::Client {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit AutomationClient(WKProcessPool *, id <_WKAutomationDelegate>);
     virtual ~AutomationClient();
index f074b7b..e5b1c90 100644 (file)
@@ -40,6 +40,7 @@
 namespace WebKit {
 
 class DiagnosticLoggingClient final : public API::DiagnosticLoggingClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit DiagnosticLoggingClient(WKWebView *);
 
index 118866c..841aa10 100644 (file)
@@ -43,6 +43,7 @@ class ResourceResponse;
 namespace WebKit {
 
 class DownloadClient final : public API::DownloadClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit DownloadClient(id <_WKDownloadDelegate>);
     
index 4fca562..e616849 100644 (file)
@@ -39,6 +39,7 @@
 namespace WebKit {
 
 class FindClient final : public API::FindClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit FindClient(WKWebView *);
     
index d87c560..71e8401 100644 (file)
@@ -56,6 +56,7 @@ namespace WebKit {
 struct WebNavigationDataStore;
 
 class NavigationState final : private PageLoadState::Observer {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit NavigationState(WKWebView *);
     ~NavigationState();
index cdc4faa..b3a4352 100644 (file)
@@ -46,6 +46,7 @@ class SecurityOrigin;
 namespace WebKit {
 
 class UIDelegate {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit UIDelegate(WKWebView *);
     ~UIDelegate();
index a18fd8f..82f2dd0 100644 (file)
@@ -64,6 +64,7 @@ class WebPageProxy;
 class WebProcessProxy;
 
 class ViewGestureController : private IPC::MessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(ViewGestureController);
 public:
     ViewGestureController(WebPageProxy&);
index cacd469..28caa7c 100644 (file)
@@ -49,6 +49,8 @@ public:
 
 private:
     struct HashSaltForOrigin {
+        WTF_MAKE_STRUCT_FAST_ALLOCATED;
+
         HashSaltForOrigin(WebCore::SecurityOriginData&& documentOrigin, WebCore::SecurityOriginData&& parentOrigin, String&& deviceIdHashSalt)
             : documentOrigin(WTFMove(documentOrigin))
             , parentOrigin(WTFMove(parentOrigin))
index 72630bd..84583dd 100644 (file)
@@ -40,6 +40,7 @@ class NetworkProcessProxy;
 class WebProcessPool;
 
 class DownloadProxyMap {
+    WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(DownloadProxyMap);
 
 public:
index 9df6e21..b029150 100644 (file)
@@ -40,6 +40,7 @@ namespace WebKit {
 class GamepadData;
 
 class UIGamepad {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     UIGamepad(WebCore::PlatformGamepad&);
 
index 64614dc..7b2e9ce 100644 (file)
@@ -44,6 +44,7 @@ class WebNotificationManagerProxy;
 class WebPageProxy;
 
 class WebNotificationProvider : public API::NotificationProvider, public API::Client<WKNotificationProviderBase> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit WebNotificationProvider(const WKNotificationProviderBase*);
 
index e9b13c4..1f858e4 100644 (file)
@@ -60,6 +60,7 @@ class ProcessAssertion
     : public CanMakeWeakPtr<ProcessAssertion>
 #endif
 {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     ProcessAssertion(ProcessID, AssertionState, Function<void()>&& invalidationCallback = { });
     ProcessAssertion(ProcessID, const String& reason, AssertionState, Function<void()>&& invalidationCallback = { });
index 847ba58..a8e1e08 100644 (file)
@@ -41,6 +41,7 @@ class RemoteLayerTreeDrawingAreaProxy;
 class WebPageProxy;
 
 class RemoteLayerTreeHost {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit RemoteLayerTreeHost(RemoteLayerTreeDrawingAreaProxy&);
     ~RemoteLayerTreeHost();
index 538e199..abfd6a4 100644 (file)
@@ -43,6 +43,7 @@ namespace WebKit {
 class WebProcessPool;
 
 class WebContextInjectedBundleClient : public API::InjectedBundleClient, public API::Client<WKContextInjectedBundleClientBase> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit WebContextInjectedBundleClient(const WKContextInjectedBundleClientBase*);
 
index 3306148..d34e910 100644 (file)
@@ -38,6 +38,7 @@ template<> struct ClientTraits<WKPageFormClientBase> {
 namespace WebKit {
 
 class WebFormClient : public API::FormClient, API::Client<WKPageFormClientBase> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit WebFormClient(const WKPageFormClientBase*);
 
index 41bbc6c..f0569fe 100644 (file)
@@ -42,6 +42,7 @@ namespace WebKit {
 class WebGeolocationManagerProxy;
 
 class WebGeolocationProvider : public API::GeolocationProvider, API::Client<WKGeolocationProviderBase> {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit WebGeolocationProvider(const WKGeolocationProviderBase*);
 
index d5453aa..96cf862 100644 (file)
@@ -321,6 +321,8 @@ typedef GenericCallback<const WebCore::IntPoint&, uint32_t, uint32_t> TouchesCal
 typedef GenericCallback<const Vector<WebCore::SelectionRect>&> SelectionRectsCallback;
 typedef GenericCallback<const FocusedElementInformation&> FocusedElementInformationCallback;
 struct ElementDidFocusArguments {
+    WTF_MAKE_FAST_ALLOCATED;
+public:
     FocusedElementInformation information;
     bool userIsInteracting;
     bool blurPreviousNode;
index b538868..7560f06 100644 (file)
@@ -40,6 +40,7 @@ class WebFrame;
 class WebPage;
 
 class WebAutomationSessionProxy : public IPC::MessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     WebAutomationSessionProxy(const String& sessionIdentifier);
     ~WebAutomationSessionProxy();
index 6015e5f..ea3dd1b 100644 (file)
@@ -47,6 +47,7 @@ namespace API {
 namespace InjectedBundle {
 
 class EditorClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     virtual ~EditorClient() { }
 
index c6e97ab..419eb7b 100644 (file)
@@ -51,6 +51,7 @@ class Object;
 namespace InjectedBundle {
 
 class PageLoaderClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     virtual ~PageLoaderClient() = default;
 
index 749d32d..eaca3e7 100644 (file)
@@ -46,6 +46,7 @@ class SecurityOrigin;
 namespace InjectedBundle {
 
 class PageUIClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     virtual ~PageUIClient() { }
 
index 5449227..92ebcfe 100644 (file)
@@ -47,6 +47,7 @@ class Object;
 namespace InjectedBundle {
 
 class FormClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     virtual ~FormClient() { }
 
index 375b260..7c6484f 100644 (file)
@@ -37,6 +37,7 @@
 namespace WebKit {
 
 class LibWebRTCNetwork {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     LibWebRTCNetwork() = default;
 
index 5974a8c..af1f425 100644 (file)
@@ -47,6 +47,7 @@ namespace WebKit {
 class LibWebRTCSocketFactory;
 
 class LibWebRTCSocket final : public rtc::AsyncPacketSocket {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     enum class Type { UDP, ServerTCP, ClientTCP, ServerConnectionTCP };
 
index 547f01c..b171991 100644 (file)
@@ -40,6 +40,7 @@ namespace WebKit {
 class LibWebRTCSocketFactory;
 
 class WebRTCResolver {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     WebRTCResolver(LibWebRTCSocketFactory&, uint64_t);
 
index c6b1fe1..2966c3d 100644 (file)
@@ -43,6 +43,7 @@ namespace WebKit {
 using namespace WebCore;
 
 class RepaintIndicatorLayerClient final : public GraphicsLayerClient {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
     RepaintIndicatorLayerClient(WebInspectorClient& inspectorClient)
         : m_inspectorClient(inspectorClient)
index 6d8459d..7ee228c 100644 (file)
@@ -66,6 +66,7 @@ struct WebPageCreationParameters;
 struct WebPreferencesStore;
 
 class DrawingArea : public IPC::MessageReceiver {
+    WTF_MAKE_FAST_ALLOCATED;
     WTF_MAKE_NONCOPYABLE(DrawingArea);
 
 public: