haikuwebkit/Source/WTF/wtf/ResourceUsage.h

56 lines
1.9 KiB
C
Raw Permalink Normal View History

[iOS] Libdispatch, Dyld, IOKit, Mach, NSPointerFunctions, MobileGestalt SPI are not available in public SDK https://bugs.webkit.org/show_bug.cgi?id=138802 Reviewed by David Kilzer. Source/WebCore: Add SPI wrapper headers {Dispatch, DynamicLinker, IOPMLib, MachVM, NSPointerFunctions, MobileGestalt}SPI.h that forward declare applicable libdispatch, dyld, IOKit, mach, Foundation, MobileGestalt SPI and use these headers instead of the including private headers corresponding to these libraries/frameworks. * WebCore.xcodeproj/project.pbxproj: Add private headers MobileGestaltSPI.h and MachVMSPI.h, and project headers DynamicLinkerSPI.h, NSPointerFunctionsSPI.h, DispatchSPI.h and IOPMLibSPI.h. Also, sort files in Xcode project. * bindings/objc/DOMInternal.mm: Include header NSPointerFunctionsSPI.h. * bridge/objc/objc_instance.mm: Ditto; Also, sort #import directives. * platform/cocoa/DisplaySleepDisablerCocoa.cpp: Substitute header IOPMLibSPI.h for private header IOKit/pwr_mgt/IOPMLib.h. * platform/cocoa/MemoryPressureHandlerCocoa.mm: Substitute header DispatchSPI.h for private header dispatch/private.h. * platform/graphics/ios/FontServicesIOS.mm: Substitute header DynamicLinkerSPI.h for private header mach-o/dyld_priv.h. * platform/ios/PlatformScreenIOS.mm: Substitute header MobileGestaltSPI.h for private header MobileGestalt.h. * platform/spi/cocoa/DispatchSPI.h: Added. * platform/spi/cocoa/DynamicLinkerSPI.h: Added. * platform/spi/cocoa/IOPMLibSPI.h: Added. * platform/spi/cocoa/MachVMSPI.h: Added. * platform/spi/cocoa/NSPointerFunctionsSPI.h: Added. * platform/spi/ios/MobileGestaltSPI.h: Added. Source/WebKit/mac: Include headers DispatchSPI.h and MobileGestaltSPI.h instead of including libdispatch and MobileGestalt headers directly. * WebView/WebView.mm: Source/WebKit2: Include headers DispatchSPI.h and MachVMSPI.h.h instead of including libdispatch and Mach headers directly. * Platform/mac/SharedMemoryMac.cpp: * UIProcess/ios/WebMemoryPressureHandlerIOS.mm: Tools: Include header MachVMSPI.h instead of including the private header mach/mach_vm.h. * DumpRenderTree/mac/CheckedMalloc.cpp: Canonical link: https://commits.webkit.org/156686@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176265 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-11-18 18:05:57 +00:00
/*
[bmalloc] Add IsoHeap test to ensure that IsoHeap pages are not allocating too large VA https://bugs.webkit.org/show_bug.cgi?id=200103 Reviewed by Mark Lam. Source/bmalloc: * bmalloc/IsoPage.cpp: Source/WebCore: No behavior change in WebCore. * page/MemoryRelease.cpp: * page/ResourceUsageThread.h: (WebCore::TagInfo::TagInfo): Deleted. * page/cocoa/ResourceUsageThreadCocoa.mm: (WebCore::vmPageSize): Deleted. (WebCore::logFootprintComparison): Deleted. (WebCore::displayNameForVMTag): Deleted. (WebCore::pagesPerVMTag): Deleted. Source/WebCore/PAL: Move VMTag page memory investigation code from PAL to WTF to reuse it in TestWTF. * PAL.xcodeproj/project.pbxproj: * pal/PlatformMac.cmake: Source/WebKit: Move MachVMSPI.h from PAL to WTF. * Platform/cocoa/SharedMemoryCocoa.cpp: Source/WTF: We move VMTag page investigation code from PAL to WTF to use it in TestWTF. And we also accumulate allocated VA size in `reserved` field of `TagInfo`. * WTF.xcodeproj/project.pbxproj: * wtf/CMakeLists.txt: * wtf/PlatformMac.cmake: * wtf/ResourceUsage.h: Added. * wtf/cocoa/MemoryPressureHandlerCocoa.mm: * wtf/cocoa/ResourceUsageCocoa.cpp: Added. (WTF::vmPageSize): (WTF::logFootprintComparison): (WTF::displayNameForVMTag): (WTF::pagesPerVMTag): * wtf/spi/cocoa/MachVMSPI.h: Added. Tools: This patch adds tests to TestWTF IsoHeap tests to ensure that IsoHeap's component is not leaking pages or not allocating too large VAs for memory allocation. We use VMTag to get the system view of the allocated VAs and check whether it is not incredibly large. While the tests are white-box tests (it means that this is a bit flaky to the implementation changes of IsoHeap), I adjusted some threshold to make this less-flaky to the future implementation changes while it catches the severe issues we had. * TestWebKitAPI/Tests/WTF/bmalloc/IsoHeap.cpp: (assertEmptyPointerSet): (assertHasOnlyObjects): (assertClean): (TEST): (allocateAndDeallocate): Canonical link: https://commits.webkit.org/213939@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247815 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-07-25 03:42:09 +00:00
* Copyright (C) 2019 Apple Inc. All rights reserved.
[iOS] Libdispatch, Dyld, IOKit, Mach, NSPointerFunctions, MobileGestalt SPI are not available in public SDK https://bugs.webkit.org/show_bug.cgi?id=138802 Reviewed by David Kilzer. Source/WebCore: Add SPI wrapper headers {Dispatch, DynamicLinker, IOPMLib, MachVM, NSPointerFunctions, MobileGestalt}SPI.h that forward declare applicable libdispatch, dyld, IOKit, mach, Foundation, MobileGestalt SPI and use these headers instead of the including private headers corresponding to these libraries/frameworks. * WebCore.xcodeproj/project.pbxproj: Add private headers MobileGestaltSPI.h and MachVMSPI.h, and project headers DynamicLinkerSPI.h, NSPointerFunctionsSPI.h, DispatchSPI.h and IOPMLibSPI.h. Also, sort files in Xcode project. * bindings/objc/DOMInternal.mm: Include header NSPointerFunctionsSPI.h. * bridge/objc/objc_instance.mm: Ditto; Also, sort #import directives. * platform/cocoa/DisplaySleepDisablerCocoa.cpp: Substitute header IOPMLibSPI.h for private header IOKit/pwr_mgt/IOPMLib.h. * platform/cocoa/MemoryPressureHandlerCocoa.mm: Substitute header DispatchSPI.h for private header dispatch/private.h. * platform/graphics/ios/FontServicesIOS.mm: Substitute header DynamicLinkerSPI.h for private header mach-o/dyld_priv.h. * platform/ios/PlatformScreenIOS.mm: Substitute header MobileGestaltSPI.h for private header MobileGestalt.h. * platform/spi/cocoa/DispatchSPI.h: Added. * platform/spi/cocoa/DynamicLinkerSPI.h: Added. * platform/spi/cocoa/IOPMLibSPI.h: Added. * platform/spi/cocoa/MachVMSPI.h: Added. * platform/spi/cocoa/NSPointerFunctionsSPI.h: Added. * platform/spi/ios/MobileGestaltSPI.h: Added. Source/WebKit/mac: Include headers DispatchSPI.h and MobileGestaltSPI.h instead of including libdispatch and MobileGestalt headers directly. * WebView/WebView.mm: Source/WebKit2: Include headers DispatchSPI.h and MachVMSPI.h.h instead of including libdispatch and Mach headers directly. * Platform/mac/SharedMemoryMac.cpp: * UIProcess/ios/WebMemoryPressureHandlerIOS.mm: Tools: Include header MachVMSPI.h instead of including the private header mach/mach_vm.h. * DumpRenderTree/mac/CheckedMalloc.cpp: Canonical link: https://commits.webkit.org/156686@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176265 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-11-18 18:05:57 +00:00
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*/
[PAL] Move spi/cocoa and spi/cg directories into PAL https://bugs.webkit.org/show_bug.cgi?id=175175 Patch by Yoshiaki Jitsukawa <Yoshiaki.Jitsukawa@sony.com> on 2017-08-09 Reviewed by Myles C. Maxfield. Source/WebCore: * Modules/applepay/cocoa/PaymentCocoa.mm: * Modules/applepay/cocoa/PaymentContactCocoa.mm: * Modules/applepay/cocoa/PaymentMerchantSessionCocoa.mm: * Modules/applepay/cocoa/PaymentMethodCocoa.mm: * PlatformAppleWin.cmake: * WebCore.xcodeproj/project.pbxproj: * editing/cocoa/EditorCocoa.mm: * editing/cocoa/HTMLConverter.mm: * editing/ios/EditorIOS.mm: * page/cocoa/ResourceUsageThreadCocoa.mm: * page/mac/TextIndicatorWindow.mm: * platform/cocoa/ContentFilterUnblockHandlerCocoa.mm: * platform/cocoa/DataDetectorsCoreSoftLink.h: * platform/cocoa/MIMETypeRegistryCocoa.mm: * platform/cocoa/NetworkExtensionContentFilter.mm: * platform/cocoa/ParentalControlsContentFilter.mm: * platform/cocoa/SleepDisablerCocoa.cpp: * platform/graphics/Font.cpp: * platform/graphics/Font.h: * platform/graphics/avfoundation/objc/AVAssetTrackUtilities.mm: * platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm: * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: * platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.mm: * platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm: * platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm: * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: * platform/graphics/cg/ColorCG.cpp: * platform/graphics/cg/GraphicsContextCG.cpp: * platform/graphics/cg/ImageBufferCG.cpp: * platform/graphics/cg/ImageBufferDataCG.cpp: * platform/graphics/cg/ImageDecoderCG.cpp: * platform/graphics/cg/NativeImageCG.cpp: * platform/graphics/cocoa/FontCacheCoreText.cpp: * platform/graphics/cocoa/FontCascadeCocoa.mm: * platform/graphics/cocoa/FontCocoa.mm: * platform/graphics/cocoa/FontDescriptionCocoa.cpp: * platform/graphics/cocoa/FontPlatformDataCocoa.mm: * platform/graphics/cocoa/IOSurface.mm: * platform/graphics/cocoa/TextTrackRepresentationCocoa.mm: * platform/graphics/cocoa/WebActionDisablingCALayerDelegate.h: * platform/graphics/ios/FontAntialiasingStateSaver.h: * platform/graphics/ios/FontCacheIOS.mm: * platform/graphics/mac/ComplexTextControllerCoreText.mm: * platform/graphics/mac/FontCacheMac.mm: * platform/graphics/mac/GlyphPageMac.cpp: * platform/graphics/win/FontCacheWin.cpp: * platform/ios/LegacyTileCache.mm: * platform/ios/LegacyTileGrid.mm: * platform/ios/LegacyTileGridTile.mm: * platform/ios/PlaybackSessionInterfaceAVKit.mm: * platform/ios/QuickLook.mm: * platform/ios/VideoFullscreenInterfaceAVKit.mm: * platform/ios/WebAVPlayerController.h: * platform/ios/WebAVPlayerController.mm: * platform/ios/WebVideoFullscreenControllerAVKit.mm: * platform/ios/wak/WKGraphics.mm: * platform/mac/DragImageMac.mm: * platform/mac/PlatformScreenMac.mm: * platform/mac/PlaybackSessionInterfaceMac.mm: * platform/mac/ThemeMac.mm: * platform/mac/VideoFullscreenInterfaceMac.mm: * platform/mac/WebPlaybackControlsManager.h: * platform/mac/WebVideoFullscreenHUDWindowController.mm: * platform/network/cocoa/CookieStorageObserver.mm: * platform/network/cocoa/NetworkLoadMetrics.mm: * platform/network/mac/AuthenticationMac.mm: * platform/network/mac/ResourceHandleMac.mm: * platform/spi/ios/DataDetectorsUISPI.h: * platform/spi/mac/DataDetectorsSPI.h: * platform/spi/mac/NSViewSPI.h: * rendering/RenderThemeCocoa.mm: * rendering/RenderThemeIOS.mm: * rendering/RenderThemeMac.mm: Source/WebCore/PAL: * PAL.xcodeproj/project.pbxproj: * pal/PlatformAppleWin.cmake: * pal/spi/cg/CoreGraphicsSPI.h: Renamed from Source/WebCore/platform/spi/cg/CoreGraphicsSPI.h. (CGFloatMin): * pal/spi/cg/ImageIOSPI.h: Renamed from Source/WebCore/platform/spi/cg/ImageIOSPI.h. * pal/spi/cocoa/AVKitSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/AVKitSPI.h. (-[AVTouchBarPlaybackControlsControlling NS_ENUM]): * pal/spi/cocoa/CFNSURLConnectionSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/CFNSURLConnectionSPI.h. * pal/spi/cocoa/CoreTextSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/CoreTextSPI.h. * pal/spi/cocoa/DataDetectorsCoreSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/DataDetectorsCoreSPI.h. * pal/spi/cocoa/IOPMLibSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/IOPMLibSPI.h. * pal/spi/cocoa/IOPSLibSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/IOPSLibSPI.h. * pal/spi/cocoa/IOReturnSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/IOReturnSPI.h. * pal/spi/cocoa/IOSurfaceSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/IOSurfaceSPI.h. * pal/spi/cocoa/IOTypesSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/IOTypesSPI.h. * pal/spi/cocoa/LinkPresentationSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/LinkPresentationSPI.h. * pal/spi/cocoa/MachVMSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/MachVMSPI.h. * pal/spi/cocoa/NEFilterSourceSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NEFilterSourceSPI.h. * pal/spi/cocoa/NSAttributedStringSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSAttributedStringSPI.h. * pal/spi/cocoa/NSButtonCellSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSButtonCellSPI.h. * pal/spi/cocoa/NSCalendarDateSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSCalendarDateSPI.h. * pal/spi/cocoa/NSColorSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSColorSPI.h. * pal/spi/cocoa/NSExtensionSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSExtensionSPI.h. * pal/spi/cocoa/NSFileManagerSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSFileManagerSPI.h. * pal/spi/cocoa/NSStringSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSStringSPI.h. * pal/spi/cocoa/NSTouchBarSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSTouchBarSPI.h. * pal/spi/cocoa/NSURLConnectionSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSURLConnectionSPI.h. * pal/spi/cocoa/NSURLDownloadSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSURLDownloadSPI.h. * pal/spi/cocoa/NSURLFileTypeMappingsSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSURLFileTypeMappingsSPI.h. * pal/spi/cocoa/PassKitSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/PassKitSPI.h. (NS_ERROR_ENUM): * pal/spi/cocoa/QuartzCoreSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/QuartzCoreSPI.h. * pal/spi/cocoa/ServersSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/ServersSPI.h. * pal/spi/cocoa/WebFilterEvaluatorSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/WebFilterEvaluatorSPI.h. * pal/spi/cocoa/pthreadSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/pthreadSPI.h. Source/WebKit: * NetworkProcess/CustomProtocols/Cocoa/LegacyCustomProtocolManagerCocoa.mm: * NetworkProcess/Downloads/mac/DownloadMac.mm: * Platform/cocoa/SharedMemoryCocoa.cpp: * Platform/mac/LayerHostingContext.mm: * Shared/Cocoa/DataDetectionResult.mm: * Shared/Cocoa/WebCoreArgumentCodersCocoa.mm: * Shared/cf/CookieStorageUtilsCF.mm: * Shared/ios/InteractionInformationAtPosition.mm: * Shared/mac/HangDetectionDisablerMac.mm: * Shared/mac/RemoteLayerBackingStore.mm: * Shared/mac/RemoteLayerTreePropertyApplier.mm: * UIProcess/API/Cocoa/WKWebView.mm: * UIProcess/API/mac/WKView.mm: * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h: * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: * UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm: * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: * UIProcess/Cocoa/WebViewImpl.h: * UIProcess/Cocoa/WebViewImpl.mm: * UIProcess/Launcher/mac/ProcessLauncherMac.mm: * UIProcess/ios/ViewGestureControllerIOS.mm: * UIProcess/ios/WKContentView.mm: * UIProcess/ios/WKContentViewInteraction.mm: * UIProcess/ios/WKPDFPageNumberIndicator.mm: * UIProcess/ios/WKScrollView.mm: * UIProcess/mac/RemoteLayerTreeHost.mm: * UIProcess/mac/ServicesController.mm: * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: * UIProcess/mac/ViewGestureControllerMac.mm: * UIProcess/mac/ViewSnapshotStore.mm: * UIProcess/mac/WKViewLayoutStrategy.mm: * WebProcess/Plugins/PDF/PDFPlugin.mm: * WebProcess/WebPage/WebPage.cpp: * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm: * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm: * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: * WebProcess/cocoa/WebProcessCocoa.mm: Source/WebKitLegacy/ios: * Misc/WebNSStringExtrasIOS.m: * WebCoreSupport/WebFixedPositionContent.mm: Source/WebKitLegacy/mac: * History/WebHistory.mm: * Misc/WebDownload.mm: * Misc/WebKitNSStringExtras.mm: * Plugins/Hosted/NetscapePluginHostManager.mm: * Plugins/WebPluginDatabase.mm: * WebCoreSupport/WebFrameLoaderClient.mm: * WebInspector/WebNodeHighlight.mm: * WebView/WebHTMLView.mm: * WebView/WebIndicateLayer.mm: * WebView/WebView.mm: * WebView/WebViewData.h: Tools: * DumpRenderTree/ios/PixelDumpSupportIOS.mm: * DumpRenderTree/mac/DumpRenderTree.mm: * TestWebKitAPI/Tests/WebKit2Cocoa/NSFileManagerExtras.mm: * WebKitTestRunner/ios/PlatformWebViewIOS.mm: * Scripts/webkitpy/style/checker.py: * Scripts/webkitpy/style/checker_unittest.py: (GlobalVariablesTest.test_path_rules_specifier): Add path rules specifiers for PassKitSPI.h and DataDetectorsCoreSPI.h * Scripts/webkitpy/style/checkers/cpp.py: (check_braces): * Scripts/webkitpy/style/checkers/cpp_unittest.py: (WebKitStyleTest.test_braces.CF_OPTIONS): (WebKitStyleTest.test_braces): Prevent CF_OPTIONS() from being handled as funtion definition. Canonical link: https://commits.webkit.org/192124@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220506 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-08-10 04:13:08 +00:00
#pragma once
[iOS] Libdispatch, Dyld, IOKit, Mach, NSPointerFunctions, MobileGestalt SPI are not available in public SDK https://bugs.webkit.org/show_bug.cgi?id=138802 Reviewed by David Kilzer. Source/WebCore: Add SPI wrapper headers {Dispatch, DynamicLinker, IOPMLib, MachVM, NSPointerFunctions, MobileGestalt}SPI.h that forward declare applicable libdispatch, dyld, IOKit, mach, Foundation, MobileGestalt SPI and use these headers instead of the including private headers corresponding to these libraries/frameworks. * WebCore.xcodeproj/project.pbxproj: Add private headers MobileGestaltSPI.h and MachVMSPI.h, and project headers DynamicLinkerSPI.h, NSPointerFunctionsSPI.h, DispatchSPI.h and IOPMLibSPI.h. Also, sort files in Xcode project. * bindings/objc/DOMInternal.mm: Include header NSPointerFunctionsSPI.h. * bridge/objc/objc_instance.mm: Ditto; Also, sort #import directives. * platform/cocoa/DisplaySleepDisablerCocoa.cpp: Substitute header IOPMLibSPI.h for private header IOKit/pwr_mgt/IOPMLib.h. * platform/cocoa/MemoryPressureHandlerCocoa.mm: Substitute header DispatchSPI.h for private header dispatch/private.h. * platform/graphics/ios/FontServicesIOS.mm: Substitute header DynamicLinkerSPI.h for private header mach-o/dyld_priv.h. * platform/ios/PlatformScreenIOS.mm: Substitute header MobileGestaltSPI.h for private header MobileGestalt.h. * platform/spi/cocoa/DispatchSPI.h: Added. * platform/spi/cocoa/DynamicLinkerSPI.h: Added. * platform/spi/cocoa/IOPMLibSPI.h: Added. * platform/spi/cocoa/MachVMSPI.h: Added. * platform/spi/cocoa/NSPointerFunctionsSPI.h: Added. * platform/spi/ios/MobileGestaltSPI.h: Added. Source/WebKit/mac: Include headers DispatchSPI.h and MobileGestaltSPI.h instead of including libdispatch and MobileGestalt headers directly. * WebView/WebView.mm: Source/WebKit2: Include headers DispatchSPI.h and MachVMSPI.h.h instead of including libdispatch and Mach headers directly. * Platform/mac/SharedMemoryMac.cpp: * UIProcess/ios/WebMemoryPressureHandlerIOS.mm: Tools: Include header MachVMSPI.h instead of including the private header mach/mach_vm.h. * DumpRenderTree/mac/CheckedMalloc.cpp: Canonical link: https://commits.webkit.org/156686@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176265 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-11-18 18:05:57 +00:00
[bmalloc] Add IsoHeap test to ensure that IsoHeap pages are not allocating too large VA https://bugs.webkit.org/show_bug.cgi?id=200103 Reviewed by Mark Lam. Source/bmalloc: * bmalloc/IsoPage.cpp: Source/WebCore: No behavior change in WebCore. * page/MemoryRelease.cpp: * page/ResourceUsageThread.h: (WebCore::TagInfo::TagInfo): Deleted. * page/cocoa/ResourceUsageThreadCocoa.mm: (WebCore::vmPageSize): Deleted. (WebCore::logFootprintComparison): Deleted. (WebCore::displayNameForVMTag): Deleted. (WebCore::pagesPerVMTag): Deleted. Source/WebCore/PAL: Move VMTag page memory investigation code from PAL to WTF to reuse it in TestWTF. * PAL.xcodeproj/project.pbxproj: * pal/PlatformMac.cmake: Source/WebKit: Move MachVMSPI.h from PAL to WTF. * Platform/cocoa/SharedMemoryCocoa.cpp: Source/WTF: We move VMTag page investigation code from PAL to WTF to use it in TestWTF. And we also accumulate allocated VA size in `reserved` field of `TagInfo`. * WTF.xcodeproj/project.pbxproj: * wtf/CMakeLists.txt: * wtf/PlatformMac.cmake: * wtf/ResourceUsage.h: Added. * wtf/cocoa/MemoryPressureHandlerCocoa.mm: * wtf/cocoa/ResourceUsageCocoa.cpp: Added. (WTF::vmPageSize): (WTF::logFootprintComparison): (WTF::displayNameForVMTag): (WTF::pagesPerVMTag): * wtf/spi/cocoa/MachVMSPI.h: Added. Tools: This patch adds tests to TestWTF IsoHeap tests to ensure that IsoHeap's component is not leaking pages or not allocating too large VAs for memory allocation. We use VMTag to get the system view of the allocated VAs and check whether it is not incredibly large. While the tests are white-box tests (it means that this is a bit flaky to the implementation changes of IsoHeap), I adjusted some threshold to make this less-flaky to the future implementation changes while it catches the severe issues we had. * TestWebKitAPI/Tests/WTF/bmalloc/IsoHeap.cpp: (assertEmptyPointerSet): (assertHasOnlyObjects): (assertClean): (TEST): (allocateAndDeallocate): Canonical link: https://commits.webkit.org/213939@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247815 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-07-25 03:42:09 +00:00
#include <array>
[iOS] Libdispatch, Dyld, IOKit, Mach, NSPointerFunctions, MobileGestalt SPI are not available in public SDK https://bugs.webkit.org/show_bug.cgi?id=138802 Reviewed by David Kilzer. Source/WebCore: Add SPI wrapper headers {Dispatch, DynamicLinker, IOPMLib, MachVM, NSPointerFunctions, MobileGestalt}SPI.h that forward declare applicable libdispatch, dyld, IOKit, mach, Foundation, MobileGestalt SPI and use these headers instead of the including private headers corresponding to these libraries/frameworks. * WebCore.xcodeproj/project.pbxproj: Add private headers MobileGestaltSPI.h and MachVMSPI.h, and project headers DynamicLinkerSPI.h, NSPointerFunctionsSPI.h, DispatchSPI.h and IOPMLibSPI.h. Also, sort files in Xcode project. * bindings/objc/DOMInternal.mm: Include header NSPointerFunctionsSPI.h. * bridge/objc/objc_instance.mm: Ditto; Also, sort #import directives. * platform/cocoa/DisplaySleepDisablerCocoa.cpp: Substitute header IOPMLibSPI.h for private header IOKit/pwr_mgt/IOPMLib.h. * platform/cocoa/MemoryPressureHandlerCocoa.mm: Substitute header DispatchSPI.h for private header dispatch/private.h. * platform/graphics/ios/FontServicesIOS.mm: Substitute header DynamicLinkerSPI.h for private header mach-o/dyld_priv.h. * platform/ios/PlatformScreenIOS.mm: Substitute header MobileGestaltSPI.h for private header MobileGestalt.h. * platform/spi/cocoa/DispatchSPI.h: Added. * platform/spi/cocoa/DynamicLinkerSPI.h: Added. * platform/spi/cocoa/IOPMLibSPI.h: Added. * platform/spi/cocoa/MachVMSPI.h: Added. * platform/spi/cocoa/NSPointerFunctionsSPI.h: Added. * platform/spi/ios/MobileGestaltSPI.h: Added. Source/WebKit/mac: Include headers DispatchSPI.h and MobileGestaltSPI.h instead of including libdispatch and MobileGestalt headers directly. * WebView/WebView.mm: Source/WebKit2: Include headers DispatchSPI.h and MachVMSPI.h.h instead of including libdispatch and Mach headers directly. * Platform/mac/SharedMemoryMac.cpp: * UIProcess/ios/WebMemoryPressureHandlerIOS.mm: Tools: Include header MachVMSPI.h instead of including the private header mach/mach_vm.h. * DumpRenderTree/mac/CheckedMalloc.cpp: Canonical link: https://commits.webkit.org/156686@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176265 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-11-18 18:05:57 +00:00
[bmalloc] Add IsoHeap test to ensure that IsoHeap pages are not allocating too large VA https://bugs.webkit.org/show_bug.cgi?id=200103 Reviewed by Mark Lam. Source/bmalloc: * bmalloc/IsoPage.cpp: Source/WebCore: No behavior change in WebCore. * page/MemoryRelease.cpp: * page/ResourceUsageThread.h: (WebCore::TagInfo::TagInfo): Deleted. * page/cocoa/ResourceUsageThreadCocoa.mm: (WebCore::vmPageSize): Deleted. (WebCore::logFootprintComparison): Deleted. (WebCore::displayNameForVMTag): Deleted. (WebCore::pagesPerVMTag): Deleted. Source/WebCore/PAL: Move VMTag page memory investigation code from PAL to WTF to reuse it in TestWTF. * PAL.xcodeproj/project.pbxproj: * pal/PlatformMac.cmake: Source/WebKit: Move MachVMSPI.h from PAL to WTF. * Platform/cocoa/SharedMemoryCocoa.cpp: Source/WTF: We move VMTag page investigation code from PAL to WTF to use it in TestWTF. And we also accumulate allocated VA size in `reserved` field of `TagInfo`. * WTF.xcodeproj/project.pbxproj: * wtf/CMakeLists.txt: * wtf/PlatformMac.cmake: * wtf/ResourceUsage.h: Added. * wtf/cocoa/MemoryPressureHandlerCocoa.mm: * wtf/cocoa/ResourceUsageCocoa.cpp: Added. (WTF::vmPageSize): (WTF::logFootprintComparison): (WTF::displayNameForVMTag): (WTF::pagesPerVMTag): * wtf/spi/cocoa/MachVMSPI.h: Added. Tools: This patch adds tests to TestWTF IsoHeap tests to ensure that IsoHeap's component is not leaking pages or not allocating too large VAs for memory allocation. We use VMTag to get the system view of the allocated VAs and check whether it is not incredibly large. While the tests are white-box tests (it means that this is a bit flaky to the implementation changes of IsoHeap), I adjusted some threshold to make this less-flaky to the future implementation changes while it catches the severe issues we had. * TestWebKitAPI/Tests/WTF/bmalloc/IsoHeap.cpp: (assertEmptyPointerSet): (assertHasOnlyObjects): (assertClean): (TEST): (allocateAndDeallocate): Canonical link: https://commits.webkit.org/213939@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247815 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-07-25 03:42:09 +00:00
namespace WTF {
#if PLATFORM(COCOA)
struct TagInfo {
[WTF][JSC] Make JSC and WTF aggressively-fast-malloced https://bugs.webkit.org/show_bug.cgi?id=200611 Reviewed by Saam Barati. Source/JavaScriptCore: This patch aggressively puts many classes into FastMalloc. In JSC side, we grep `std::make_unique` etc. to find potentially system-malloc-allocated classes. After this patch, all the JSC related allocations in JetStream2 cli is done from bmalloc. In the future, it would be nice that we add `WTF::makeUnique<T>` helper function and throw a compile error if `T` is not FastMalloc annotated[1]. Putting WebKit classes in FastMalloc has many benefits. 1. Simply, it is fast. 2. vmmap can tell the amount of memory used for WebKit. 3. bmalloc can isolate WebKit memory allocation from the rest of the world. This is useful since we can know more about what component is corrupting the memory from the memory corruption crash. [1]: https://bugs.webkit.org/show_bug.cgi?id=200620 * API/ObjCCallbackFunction.mm: * assembler/AbstractMacroAssembler.h: * b3/B3PhiChildren.h: * b3/air/AirAllocateRegistersAndStackAndGenerateCode.h: * b3/air/AirDisassembler.h: * bytecode/AccessCaseSnippetParams.h: * bytecode/CallVariant.h: * bytecode/DeferredSourceDump.h: * bytecode/ExecutionCounter.h: * bytecode/GetByIdStatus.h: * bytecode/GetByIdVariant.h: * bytecode/InByIdStatus.h: * bytecode/InByIdVariant.h: * bytecode/InstanceOfStatus.h: * bytecode/InstanceOfVariant.h: * bytecode/PutByIdStatus.h: * bytecode/PutByIdVariant.h: * bytecode/ValueProfile.h: * dfg/DFGAbstractInterpreter.h: * dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::newVariableAccessData): * dfg/DFGFlowIndexing.h: * dfg/DFGFlowMap.h: * dfg/DFGLiveCatchVariablePreservationPhase.cpp: (JSC::DFG::LiveCatchVariablePreservationPhase::newVariableAccessData): * dfg/DFGMaximalFlushInsertionPhase.cpp: (JSC::DFG::MaximalFlushInsertionPhase::newVariableAccessData): * dfg/DFGOSRExit.h: * dfg/DFGSpeculativeJIT.h: * dfg/DFGVariableAccessData.h: * disassembler/ARM64/A64DOpcode.h: * inspector/remote/socket/RemoteInspectorMessageParser.h: * inspector/remote/socket/RemoteInspectorSocket.h: * inspector/remote/socket/RemoteInspectorSocketEndpoint.h: * jit/PCToCodeOriginMap.h: * runtime/BasicBlockLocation.h: * runtime/DoublePredictionFuzzerAgent.h: * runtime/JSRunLoopTimer.h: * runtime/PromiseDeferredTimer.h: (JSC::PromiseDeferredTimer::create): PromiseDeferredTimer should be allocated as `Ref<>` instead of `std::unique_ptr` since it is inheriting ThreadSafeRefCounted<>. Holding such a class with std::unique_ptr could lead to potentially dangerous operations (like, someone holds it with Ref<> while it is deleted by std::unique_ptr<>). * runtime/RandomizingFuzzerAgent.h: * runtime/SymbolTable.h: * runtime/VM.cpp: (JSC::VM::VM): * runtime/VM.h: * tools/JSDollarVM.cpp: * tools/SigillCrashAnalyzer.cpp: * wasm/WasmFormat.h: * wasm/WasmMemory.cpp: * wasm/WasmSignature.h: * yarr/YarrJIT.h: Source/WebCore: Changed the accessor since we changed std::unique_ptr to Ref for this field. No behavior change. * bindings/js/WorkerScriptController.cpp: (WebCore::WorkerScriptController::addTimerSetNotification): (WebCore::WorkerScriptController::removeTimerSetNotification): Source/WTF: WTF has many data structures, in particular, containers. And these containers can be allocated like `std::make_unique<Container>()`. Without WTF_MAKE_FAST_ALLOCATED, this container itself is allocated from the system malloc. This patch attaches WTF_MAKE_FAST_ALLOCATED more aggressively not to allocate them from the system malloc. And we add some `final` to containers and classes that would be never inherited. * wtf/Assertions.cpp: * wtf/Atomics.h: * wtf/AutodrainedPool.h: * wtf/Bag.h: (WTF::Bag::Bag): Deleted. (WTF::Bag::~Bag): Deleted. (WTF::Bag::clear): Deleted. (WTF::Bag::add): Deleted. (WTF::Bag::iterator::iterator): Deleted. (WTF::Bag::iterator::operator! const): Deleted. (WTF::Bag::iterator::operator* const): Deleted. (WTF::Bag::iterator::operator++): Deleted. (WTF::Bag::iterator::operator== const): Deleted. (WTF::Bag::iterator::operator!= const): Deleted. (WTF::Bag::begin): Deleted. (WTF::Bag::begin const): Deleted. (WTF::Bag::end const): Deleted. (WTF::Bag::isEmpty const): Deleted. (WTF::Bag::unwrappedHead const): Deleted. * wtf/BitVector.h: (WTF::BitVector::BitVector): Deleted. (WTF::BitVector::~BitVector): Deleted. (WTF::BitVector::operator=): Deleted. (WTF::BitVector::size const): Deleted. (WTF::BitVector::ensureSize): Deleted. (WTF::BitVector::quickGet const): Deleted. (WTF::BitVector::quickSet): Deleted. (WTF::BitVector::quickClear): Deleted. (WTF::BitVector::get const): Deleted. (WTF::BitVector::contains const): Deleted. (WTF::BitVector::set): Deleted. (WTF::BitVector::add): Deleted. (WTF::BitVector::ensureSizeAndSet): Deleted. (WTF::BitVector::clear): Deleted. (WTF::BitVector::remove): Deleted. (WTF::BitVector::merge): Deleted. (WTF::BitVector::filter): Deleted. (WTF::BitVector::exclude): Deleted. (WTF::BitVector::bitCount const): Deleted. (WTF::BitVector::isEmpty const): Deleted. (WTF::BitVector::findBit const): Deleted. (WTF::BitVector::isEmptyValue const): Deleted. (WTF::BitVector::isDeletedValue const): Deleted. (WTF::BitVector::isEmptyOrDeletedValue const): Deleted. (WTF::BitVector::operator== const): Deleted. (WTF::BitVector::hash const): Deleted. (WTF::BitVector::iterator::iterator): Deleted. (WTF::BitVector::iterator::operator* const): Deleted. (WTF::BitVector::iterator::operator++): Deleted. (WTF::BitVector::iterator::isAtEnd const): Deleted. (WTF::BitVector::iterator::operator== const): Deleted. (WTF::BitVector::iterator::operator!= const): Deleted. (WTF::BitVector::begin const): Deleted. (WTF::BitVector::end const): Deleted. (WTF::BitVector::bitsInPointer): Deleted. (WTF::BitVector::maxInlineBits): Deleted. (WTF::BitVector::byteCount): Deleted. (WTF::BitVector::makeInlineBits): Deleted. (WTF::BitVector::cleanseInlineBits): Deleted. (WTF::BitVector::bitCount): Deleted. (WTF::BitVector::findBitFast const): Deleted. (WTF::BitVector::findBitSimple const): Deleted. (WTF::BitVector::OutOfLineBits::numBits const): Deleted. (WTF::BitVector::OutOfLineBits::numWords const): Deleted. (WTF::BitVector::OutOfLineBits::bits): Deleted. (WTF::BitVector::OutOfLineBits::bits const): Deleted. (WTF::BitVector::OutOfLineBits::OutOfLineBits): Deleted. (WTF::BitVector::isInline const): Deleted. (WTF::BitVector::outOfLineBits const): Deleted. (WTF::BitVector::outOfLineBits): Deleted. (WTF::BitVector::bits): Deleted. (WTF::BitVector::bits const): Deleted. * wtf/Bitmap.h: (WTF::Bitmap::size): Deleted. (WTF::Bitmap::iterator::iterator): Deleted. (WTF::Bitmap::iterator::operator* const): Deleted. (WTF::Bitmap::iterator::operator++): Deleted. (WTF::Bitmap::iterator::operator== const): Deleted. (WTF::Bitmap::iterator::operator!= const): Deleted. (WTF::Bitmap::begin const): Deleted. (WTF::Bitmap::end const): Deleted. * wtf/Box.h: * wtf/BumpPointerAllocator.h: * wtf/CPUTime.h: * wtf/CheckedBoolean.h: * wtf/CommaPrinter.h: (WTF::CommaPrinter::CommaPrinter): Deleted. (WTF::CommaPrinter::dump const): Deleted. (WTF::CommaPrinter::didPrint const): Deleted. * wtf/CompactPointerTuple.h: (WTF::CompactPointerTuple::encodeType): Deleted. (WTF::CompactPointerTuple::decodeType): Deleted. (WTF::CompactPointerTuple::CompactPointerTuple): Deleted. (WTF::CompactPointerTuple::pointer const): Deleted. (WTF::CompactPointerTuple::setPointer): Deleted. (WTF::CompactPointerTuple::type const): Deleted. (WTF::CompactPointerTuple::setType): Deleted. * wtf/CompilationThread.h: (WTF::CompilationScope::CompilationScope): Deleted. (WTF::CompilationScope::~CompilationScope): Deleted. (WTF::CompilationScope::leaveEarly): Deleted. * wtf/CompletionHandler.h: (WTF::CompletionHandler<Out): (WTF::Detail::CallableWrapper<CompletionHandler<Out): (WTF::CompletionHandlerCallingScope::CompletionHandlerCallingScope): Deleted. (WTF::CompletionHandlerCallingScope::~CompletionHandlerCallingScope): Deleted. (WTF::CompletionHandlerCallingScope::CompletionHandler<void): Deleted. * wtf/ConcurrentBuffer.h: (WTF::ConcurrentBuffer::ConcurrentBuffer): Deleted. (WTF::ConcurrentBuffer::~ConcurrentBuffer): Deleted. (WTF::ConcurrentBuffer::growExact): Deleted. (WTF::ConcurrentBuffer::grow): Deleted. (WTF::ConcurrentBuffer::array const): Deleted. (WTF::ConcurrentBuffer::operator[]): Deleted. (WTF::ConcurrentBuffer::operator[] const): Deleted. (WTF::ConcurrentBuffer::createArray): Deleted. * wtf/ConcurrentPtrHashSet.h: (WTF::ConcurrentPtrHashSet::contains): Deleted. (WTF::ConcurrentPtrHashSet::add): Deleted. (WTF::ConcurrentPtrHashSet::size const): Deleted. (WTF::ConcurrentPtrHashSet::Table::maxLoad const): Deleted. (WTF::ConcurrentPtrHashSet::hash): Deleted. (WTF::ConcurrentPtrHashSet::cast): Deleted. (WTF::ConcurrentPtrHashSet::containsImpl const): Deleted. (WTF::ConcurrentPtrHashSet::addImpl): Deleted. * wtf/ConcurrentVector.h: (WTF::ConcurrentVector::~ConcurrentVector): Deleted. (WTF::ConcurrentVector::size const): Deleted. (WTF::ConcurrentVector::isEmpty const): Deleted. (WTF::ConcurrentVector::at): Deleted. (WTF::ConcurrentVector::at const): Deleted. (WTF::ConcurrentVector::operator[]): Deleted. (WTF::ConcurrentVector::operator[] const): Deleted. (WTF::ConcurrentVector::first): Deleted. (WTF::ConcurrentVector::first const): Deleted. (WTF::ConcurrentVector::last): Deleted. (WTF::ConcurrentVector::last const): Deleted. (WTF::ConcurrentVector::takeLast): Deleted. (WTF::ConcurrentVector::append): Deleted. (WTF::ConcurrentVector::alloc): Deleted. (WTF::ConcurrentVector::removeLast): Deleted. (WTF::ConcurrentVector::grow): Deleted. (WTF::ConcurrentVector::begin): Deleted. (WTF::ConcurrentVector::end): Deleted. (WTF::ConcurrentVector::segmentExistsFor): Deleted. (WTF::ConcurrentVector::segmentFor): Deleted. (WTF::ConcurrentVector::subscriptFor): Deleted. (WTF::ConcurrentVector::ensureSegmentsFor): Deleted. (WTF::ConcurrentVector::ensureSegment): Deleted. (WTF::ConcurrentVector::allocateSegment): Deleted. * wtf/Condition.h: (WTF::Condition::waitUntil): Deleted. (WTF::Condition::waitFor): Deleted. (WTF::Condition::wait): Deleted. (WTF::Condition::notifyOne): Deleted. (WTF::Condition::notifyAll): Deleted. * wtf/CountingLock.h: (WTF::CountingLock::LockHooks::lockHook): Deleted. (WTF::CountingLock::LockHooks::unlockHook): Deleted. (WTF::CountingLock::LockHooks::parkHook): Deleted. (WTF::CountingLock::LockHooks::handoffHook): Deleted. (WTF::CountingLock::tryLock): Deleted. (WTF::CountingLock::lock): Deleted. (WTF::CountingLock::unlock): Deleted. (WTF::CountingLock::isHeld const): Deleted. (WTF::CountingLock::isLocked const): Deleted. (WTF::CountingLock::Count::operator bool const): Deleted. (WTF::CountingLock::Count::operator== const): Deleted. (WTF::CountingLock::Count::operator!= const): Deleted. (WTF::CountingLock::tryOptimisticRead): Deleted. (WTF::CountingLock::validate): Deleted. (WTF::CountingLock::doOptimizedRead): Deleted. (WTF::CountingLock::tryOptimisticFencelessRead): Deleted. (WTF::CountingLock::fencelessValidate): Deleted. (WTF::CountingLock::doOptimizedFencelessRead): Deleted. (WTF::CountingLock::getCount): Deleted. * wtf/CrossThreadQueue.h: * wtf/CrossThreadTask.h: * wtf/CryptographicallyRandomNumber.cpp: * wtf/DataMutex.h: * wtf/DateMath.h: * wtf/Deque.h: (WTF::Deque::size const): Deleted. (WTF::Deque::isEmpty const): Deleted. (WTF::Deque::begin): Deleted. (WTF::Deque::end): Deleted. (WTF::Deque::begin const): Deleted. (WTF::Deque::end const): Deleted. (WTF::Deque::rbegin): Deleted. (WTF::Deque::rend): Deleted. (WTF::Deque::rbegin const): Deleted. (WTF::Deque::rend const): Deleted. (WTF::Deque::first): Deleted. (WTF::Deque::first const): Deleted. (WTF::Deque::last): Deleted. (WTF::Deque::last const): Deleted. (WTF::Deque::append): Deleted. * wtf/Dominators.h: * wtf/DoublyLinkedList.h: * wtf/Expected.h: * wtf/FastBitVector.h: * wtf/FileMetadata.h: * wtf/FileSystem.h: * wtf/GraphNodeWorklist.h: * wtf/GregorianDateTime.h: (WTF::GregorianDateTime::GregorianDateTime): Deleted. (WTF::GregorianDateTime::year const): Deleted. (WTF::GregorianDateTime::month const): Deleted. (WTF::GregorianDateTime::yearDay const): Deleted. (WTF::GregorianDateTime::monthDay const): Deleted. (WTF::GregorianDateTime::weekDay const): Deleted. (WTF::GregorianDateTime::hour const): Deleted. (WTF::GregorianDateTime::minute const): Deleted. (WTF::GregorianDateTime::second const): Deleted. (WTF::GregorianDateTime::utcOffset const): Deleted. (WTF::GregorianDateTime::isDST const): Deleted. (WTF::GregorianDateTime::setYear): Deleted. (WTF::GregorianDateTime::setMonth): Deleted. (WTF::GregorianDateTime::setYearDay): Deleted. (WTF::GregorianDateTime::setMonthDay): Deleted. (WTF::GregorianDateTime::setWeekDay): Deleted. (WTF::GregorianDateTime::setHour): Deleted. (WTF::GregorianDateTime::setMinute): Deleted. (WTF::GregorianDateTime::setSecond): Deleted. (WTF::GregorianDateTime::setUtcOffset): Deleted. (WTF::GregorianDateTime::setIsDST): Deleted. (WTF::GregorianDateTime::operator tm const): Deleted. (WTF::GregorianDateTime::copyFrom): Deleted. * wtf/HashTable.h: * wtf/Hasher.h: * wtf/HexNumber.h: * wtf/Indenter.h: * wtf/IndexMap.h: * wtf/IndexSet.h: * wtf/IndexSparseSet.h: * wtf/IndexedContainerIterator.h: * wtf/Insertion.h: * wtf/IteratorAdaptors.h: * wtf/IteratorRange.h: * wtf/KeyValuePair.h: * wtf/ListHashSet.h: (WTF::ListHashSet::begin): Deleted. (WTF::ListHashSet::end): Deleted. (WTF::ListHashSet::begin const): Deleted. (WTF::ListHashSet::end const): Deleted. (WTF::ListHashSet::random): Deleted. (WTF::ListHashSet::random const): Deleted. (WTF::ListHashSet::rbegin): Deleted. (WTF::ListHashSet::rend): Deleted. (WTF::ListHashSet::rbegin const): Deleted. (WTF::ListHashSet::rend const): Deleted. * wtf/Liveness.h: * wtf/LocklessBag.h: (WTF::LocklessBag::LocklessBag): Deleted. (WTF::LocklessBag::add): Deleted. (WTF::LocklessBag::iterate): Deleted. (WTF::LocklessBag::consumeAll): Deleted. (WTF::LocklessBag::consumeAllWithNode): Deleted. (WTF::LocklessBag::~LocklessBag): Deleted. * wtf/LoggingHashID.h: * wtf/MD5.h: * wtf/MachSendRight.h: * wtf/MainThreadData.h: * wtf/Markable.h: * wtf/MediaTime.h: * wtf/MemoryPressureHandler.h: * wtf/MessageQueue.h: (WTF::MessageQueue::MessageQueue): Deleted. * wtf/MetaAllocator.h: * wtf/MonotonicTime.h: (WTF::MonotonicTime::MonotonicTime): Deleted. (WTF::MonotonicTime::fromRawSeconds): Deleted. (WTF::MonotonicTime::infinity): Deleted. (WTF::MonotonicTime::nan): Deleted. (WTF::MonotonicTime::secondsSinceEpoch const): Deleted. (WTF::MonotonicTime::approximateMonotonicTime const): Deleted. (WTF::MonotonicTime::operator bool const): Deleted. (WTF::MonotonicTime::operator+ const): Deleted. (WTF::MonotonicTime::operator- const): Deleted. (WTF::MonotonicTime::operator% const): Deleted. (WTF::MonotonicTime::operator+=): Deleted. (WTF::MonotonicTime::operator-=): Deleted. (WTF::MonotonicTime::operator== const): Deleted. (WTF::MonotonicTime::operator!= const): Deleted. (WTF::MonotonicTime::operator< const): Deleted. (WTF::MonotonicTime::operator> const): Deleted. (WTF::MonotonicTime::operator<= const): Deleted. (WTF::MonotonicTime::operator>= const): Deleted. (WTF::MonotonicTime::isolatedCopy const): Deleted. (WTF::MonotonicTime::encode const): Deleted. (WTF::MonotonicTime::decode): Deleted. * wtf/NaturalLoops.h: * wtf/NoLock.h: * wtf/OSAllocator.h: * wtf/OptionSet.h: * wtf/Optional.h: * wtf/OrderMaker.h: * wtf/Packed.h: (WTF::alignof): * wtf/PackedIntVector.h: (WTF::PackedIntVector::PackedIntVector): Deleted. (WTF::PackedIntVector::operator=): Deleted. (WTF::PackedIntVector::size const): Deleted. (WTF::PackedIntVector::ensureSize): Deleted. (WTF::PackedIntVector::resize): Deleted. (WTF::PackedIntVector::clearAll): Deleted. (WTF::PackedIntVector::get const): Deleted. (WTF::PackedIntVector::set): Deleted. (WTF::PackedIntVector::mask): Deleted. * wtf/PageBlock.h: * wtf/ParallelJobsOpenMP.h: * wtf/ParkingLot.h: * wtf/PriorityQueue.h: (WTF::PriorityQueue::size const): Deleted. (WTF::PriorityQueue::isEmpty const): Deleted. (WTF::PriorityQueue::enqueue): Deleted. (WTF::PriorityQueue::peek const): Deleted. (WTF::PriorityQueue::dequeue): Deleted. (WTF::PriorityQueue::decreaseKey): Deleted. (WTF::PriorityQueue::increaseKey): Deleted. (WTF::PriorityQueue::begin const): Deleted. (WTF::PriorityQueue::end const): Deleted. (WTF::PriorityQueue::isValidHeap const): Deleted. (WTF::PriorityQueue::parentOf): Deleted. (WTF::PriorityQueue::leftChildOf): Deleted. (WTF::PriorityQueue::rightChildOf): Deleted. (WTF::PriorityQueue::siftUp): Deleted. (WTF::PriorityQueue::siftDown): Deleted. * wtf/RandomDevice.h: * wtf/Range.h: * wtf/RangeSet.h: (WTF::RangeSet::RangeSet): Deleted. (WTF::RangeSet::~RangeSet): Deleted. (WTF::RangeSet::add): Deleted. (WTF::RangeSet::contains const): Deleted. (WTF::RangeSet::overlaps const): Deleted. (WTF::RangeSet::clear): Deleted. (WTF::RangeSet::dump const): Deleted. (WTF::RangeSet::dumpRaw const): Deleted. (WTF::RangeSet::begin const): Deleted. (WTF::RangeSet::end const): Deleted. (WTF::RangeSet::addAll): Deleted. (WTF::RangeSet::compact): Deleted. (WTF::RangeSet::overlapsNonEmpty): Deleted. (WTF::RangeSet::subsumesNonEmpty): Deleted. (WTF::RangeSet::findRange const): Deleted. * wtf/RecursableLambda.h: * wtf/RedBlackTree.h: (WTF::RedBlackTree::Node::successor const): Deleted. (WTF::RedBlackTree::Node::predecessor const): Deleted. (WTF::RedBlackTree::Node::successor): Deleted. (WTF::RedBlackTree::Node::predecessor): Deleted. (WTF::RedBlackTree::Node::reset): Deleted. (WTF::RedBlackTree::Node::parent const): Deleted. (WTF::RedBlackTree::Node::setParent): Deleted. (WTF::RedBlackTree::Node::left const): Deleted. (WTF::RedBlackTree::Node::setLeft): Deleted. (WTF::RedBlackTree::Node::right const): Deleted. (WTF::RedBlackTree::Node::setRight): Deleted. (WTF::RedBlackTree::Node::color const): Deleted. (WTF::RedBlackTree::Node::setColor): Deleted. (WTF::RedBlackTree::RedBlackTree): Deleted. (WTF::RedBlackTree::insert): Deleted. (WTF::RedBlackTree::remove): Deleted. (WTF::RedBlackTree::findExact const): Deleted. (WTF::RedBlackTree::findLeastGreaterThanOrEqual const): Deleted. (WTF::RedBlackTree::findGreatestLessThanOrEqual const): Deleted. (WTF::RedBlackTree::first const): Deleted. (WTF::RedBlackTree::last const): Deleted. (WTF::RedBlackTree::size): Deleted. (WTF::RedBlackTree::isEmpty): Deleted. (WTF::RedBlackTree::treeMinimum): Deleted. (WTF::RedBlackTree::treeMaximum): Deleted. (WTF::RedBlackTree::treeInsert): Deleted. (WTF::RedBlackTree::leftRotate): Deleted. (WTF::RedBlackTree::rightRotate): Deleted. (WTF::RedBlackTree::removeFixup): Deleted. * wtf/ResourceUsage.h: * wtf/RunLoop.cpp: * wtf/RunLoopTimer.h: * wtf/SHA1.h: * wtf/Seconds.h: (WTF::Seconds::Seconds): Deleted. (WTF::Seconds::value const): Deleted. (WTF::Seconds::minutes const): Deleted. (WTF::Seconds::seconds const): Deleted. (WTF::Seconds::milliseconds const): Deleted. (WTF::Seconds::microseconds const): Deleted. (WTF::Seconds::nanoseconds const): Deleted. (WTF::Seconds::minutesAs const): Deleted. (WTF::Seconds::secondsAs const): Deleted. (WTF::Seconds::millisecondsAs const): Deleted. (WTF::Seconds::microsecondsAs const): Deleted. (WTF::Seconds::nanosecondsAs const): Deleted. (WTF::Seconds::fromMinutes): Deleted. (WTF::Seconds::fromHours): Deleted. (WTF::Seconds::fromMilliseconds): Deleted. (WTF::Seconds::fromMicroseconds): Deleted. (WTF::Seconds::fromNanoseconds): Deleted. (WTF::Seconds::infinity): Deleted. (WTF::Seconds::nan): Deleted. (WTF::Seconds::operator bool const): Deleted. (WTF::Seconds::operator+ const): Deleted. (WTF::Seconds::operator- const): Deleted. (WTF::Seconds::operator* const): Deleted. (WTF::Seconds::operator/ const): Deleted. (WTF::Seconds::operator% const): Deleted. (WTF::Seconds::operator+=): Deleted. (WTF::Seconds::operator-=): Deleted. (WTF::Seconds::operator*=): Deleted. (WTF::Seconds::operator/=): Deleted. (WTF::Seconds::operator%=): Deleted. (WTF::Seconds::operator== const): Deleted. (WTF::Seconds::operator!= const): Deleted. (WTF::Seconds::operator< const): Deleted. (WTF::Seconds::operator> const): Deleted. (WTF::Seconds::operator<= const): Deleted. (WTF::Seconds::operator>= const): Deleted. (WTF::Seconds::isolatedCopy const): Deleted. (WTF::Seconds::encode const): Deleted. (WTF::Seconds::decode): Deleted. * wtf/SegmentedVector.h: (WTF::SegmentedVector::~SegmentedVector): Deleted. (WTF::SegmentedVector::size const): Deleted. (WTF::SegmentedVector::isEmpty const): Deleted. (WTF::SegmentedVector::at): Deleted. (WTF::SegmentedVector::at const): Deleted. (WTF::SegmentedVector::operator[]): Deleted. (WTF::SegmentedVector::operator[] const): Deleted. (WTF::SegmentedVector::first): Deleted. (WTF::SegmentedVector::first const): Deleted. (WTF::SegmentedVector::last): Deleted. (WTF::SegmentedVector::last const): Deleted. (WTF::SegmentedVector::takeLast): Deleted. (WTF::SegmentedVector::append): Deleted. (WTF::SegmentedVector::alloc): Deleted. (WTF::SegmentedVector::removeLast): Deleted. (WTF::SegmentedVector::grow): Deleted. (WTF::SegmentedVector::clear): Deleted. (WTF::SegmentedVector::begin): Deleted. (WTF::SegmentedVector::end): Deleted. (WTF::SegmentedVector::shrinkToFit): Deleted. (WTF::SegmentedVector::deleteAllSegments): Deleted. (WTF::SegmentedVector::segmentExistsFor): Deleted. (WTF::SegmentedVector::segmentFor): Deleted. (WTF::SegmentedVector::subscriptFor): Deleted. (WTF::SegmentedVector::ensureSegmentsFor): Deleted. (WTF::SegmentedVector::ensureSegment): Deleted. (WTF::SegmentedVector::allocateSegment): Deleted. * wtf/SetForScope.h: * wtf/SingleRootGraph.h: * wtf/SinglyLinkedList.h: * wtf/SmallPtrSet.h: * wtf/SpanningTree.h: * wtf/Spectrum.h: * wtf/StackBounds.h: * wtf/StackShot.h: * wtf/StackShotProfiler.h: * wtf/StackStats.h: * wtf/StackTrace.h: * wtf/StreamBuffer.h: * wtf/SynchronizedFixedQueue.h: (WTF::SynchronizedFixedQueue::create): Deleted. (WTF::SynchronizedFixedQueue::open): Deleted. (WTF::SynchronizedFixedQueue::close): Deleted. (WTF::SynchronizedFixedQueue::isOpen): Deleted. (WTF::SynchronizedFixedQueue::enqueue): Deleted. (WTF::SynchronizedFixedQueue::dequeue): Deleted. (WTF::SynchronizedFixedQueue::SynchronizedFixedQueue): Deleted. * wtf/SystemTracing.h: * wtf/ThreadGroup.h: (WTF::ThreadGroup::create): Deleted. (WTF::ThreadGroup::threads const): Deleted. (WTF::ThreadGroup::getLock): Deleted. (WTF::ThreadGroup::weakFromThis): Deleted. * wtf/ThreadSpecific.h: * wtf/ThreadingPrimitives.h: (WTF::Mutex::impl): Deleted. * wtf/TimeWithDynamicClockType.h: (WTF::TimeWithDynamicClockType::TimeWithDynamicClockType): Deleted. (WTF::TimeWithDynamicClockType::fromRawSeconds): Deleted. (WTF::TimeWithDynamicClockType::secondsSinceEpoch const): Deleted. (WTF::TimeWithDynamicClockType::clockType const): Deleted. (WTF::TimeWithDynamicClockType::withSameClockAndRawSeconds const): Deleted. (WTF::TimeWithDynamicClockType::operator bool const): Deleted. (WTF::TimeWithDynamicClockType::operator+ const): Deleted. (WTF::TimeWithDynamicClockType::operator- const): Deleted. (WTF::TimeWithDynamicClockType::operator+=): Deleted. (WTF::TimeWithDynamicClockType::operator-=): Deleted. (WTF::TimeWithDynamicClockType::operator== const): Deleted. (WTF::TimeWithDynamicClockType::operator!= const): Deleted. * wtf/TimingScope.h: * wtf/TinyLRUCache.h: * wtf/TinyPtrSet.h: * wtf/URLParser.cpp: * wtf/URLParser.h: * wtf/Unexpected.h: * wtf/Variant.h: * wtf/WTFSemaphore.h: (WTF::Semaphore::Semaphore): Deleted. (WTF::Semaphore::signal): Deleted. (WTF::Semaphore::waitUntil): Deleted. (WTF::Semaphore::waitFor): Deleted. (WTF::Semaphore::wait): Deleted. * wtf/WallTime.h: (WTF::WallTime::WallTime): Deleted. (WTF::WallTime::fromRawSeconds): Deleted. (WTF::WallTime::infinity): Deleted. (WTF::WallTime::nan): Deleted. (WTF::WallTime::secondsSinceEpoch const): Deleted. (WTF::WallTime::approximateWallTime const): Deleted. (WTF::WallTime::operator bool const): Deleted. (WTF::WallTime::operator+ const): Deleted. (WTF::WallTime::operator- const): Deleted. (WTF::WallTime::operator+=): Deleted. (WTF::WallTime::operator-=): Deleted. (WTF::WallTime::operator== const): Deleted. (WTF::WallTime::operator!= const): Deleted. (WTF::WallTime::operator< const): Deleted. (WTF::WallTime::operator> const): Deleted. (WTF::WallTime::operator<= const): Deleted. (WTF::WallTime::operator>= const): Deleted. (WTF::WallTime::isolatedCopy const): Deleted. * wtf/WeakHashSet.h: (WTF::WeakHashSet::WeakHashSetConstIterator::WeakHashSetConstIterator): Deleted. (WTF::WeakHashSet::WeakHashSetConstIterator::get const): Deleted. (WTF::WeakHashSet::WeakHashSetConstIterator::operator* const): Deleted. (WTF::WeakHashSet::WeakHashSetConstIterator::operator-> const): Deleted. (WTF::WeakHashSet::WeakHashSetConstIterator::operator++): Deleted. (WTF::WeakHashSet::WeakHashSetConstIterator::skipEmptyBuckets): Deleted. (WTF::WeakHashSet::WeakHashSetConstIterator::operator== const): Deleted. (WTF::WeakHashSet::WeakHashSetConstIterator::operator!= const): Deleted. (WTF::WeakHashSet::WeakHashSet): Deleted. (WTF::WeakHashSet::begin const): Deleted. (WTF::WeakHashSet::end const): Deleted. (WTF::WeakHashSet::add): Deleted. (WTF::WeakHashSet::remove): Deleted. (WTF::WeakHashSet::contains const): Deleted. (WTF::WeakHashSet::capacity const): Deleted. (WTF::WeakHashSet::computesEmpty const): Deleted. (WTF::WeakHashSet::hasNullReferences const): Deleted. (WTF::WeakHashSet::computeSize const): Deleted. (WTF::WeakHashSet::checkConsistency const): Deleted. * wtf/WeakRandom.h: (WTF::WeakRandom::WeakRandom): Deleted. (WTF::WeakRandom::setSeed): Deleted. (WTF::WeakRandom::seed const): Deleted. (WTF::WeakRandom::get): Deleted. (WTF::WeakRandom::getUint32): Deleted. (WTF::WeakRandom::lowOffset): Deleted. (WTF::WeakRandom::highOffset): Deleted. (WTF::WeakRandom::nextState): Deleted. (WTF::WeakRandom::generate): Deleted. (WTF::WeakRandom::advance): Deleted. * wtf/WordLock.h: (WTF::WordLock::lock): Deleted. (WTF::WordLock::unlock): Deleted. (WTF::WordLock::isHeld const): Deleted. (WTF::WordLock::isLocked const): Deleted. (WTF::WordLock::isFullyReset const): Deleted. * wtf/generic/MainThreadGeneric.cpp: * wtf/glib/GMutexLocker.h: * wtf/linux/CurrentProcessMemoryStatus.h: * wtf/posix/ThreadingPOSIX.cpp: (WTF::Semaphore::Semaphore): Deleted. (WTF::Semaphore::~Semaphore): Deleted. (WTF::Semaphore::wait): Deleted. (WTF::Semaphore::post): Deleted. * wtf/text/ASCIILiteral.h: (WTF::ASCIILiteral::operator const char* const): Deleted. (WTF::ASCIILiteral::fromLiteralUnsafe): Deleted. (WTF::ASCIILiteral::null): Deleted. (WTF::ASCIILiteral::characters const): Deleted. (WTF::ASCIILiteral::ASCIILiteral): Deleted. * wtf/text/AtomString.h: (WTF::AtomString::operator=): Deleted. (WTF::AtomString::isHashTableDeletedValue const): Deleted. (WTF::AtomString::existingHash const): Deleted. (WTF::AtomString::operator const String& const): Deleted. (WTF::AtomString::string const): Deleted. (WTF::AtomString::impl const): Deleted. (WTF::AtomString::is8Bit const): Deleted. (WTF::AtomString::characters8 const): Deleted. (WTF::AtomString::characters16 const): Deleted. (WTF::AtomString::length const): Deleted. (WTF::AtomString::operator[] const): Deleted. (WTF::AtomString::contains const): Deleted. (WTF::AtomString::containsIgnoringASCIICase const): Deleted. (WTF::AtomString::find const): Deleted. (WTF::AtomString::findIgnoringASCIICase const): Deleted. (WTF::AtomString::startsWith const): Deleted. (WTF::AtomString::startsWithIgnoringASCIICase const): Deleted. (WTF::AtomString::endsWith const): Deleted. (WTF::AtomString::endsWithIgnoringASCIICase const): Deleted. (WTF::AtomString::toInt const): Deleted. (WTF::AtomString::toDouble const): Deleted. (WTF::AtomString::toFloat const): Deleted. (WTF::AtomString::percentage const): Deleted. (WTF::AtomString::isNull const): Deleted. (WTF::AtomString::isEmpty const): Deleted. (WTF::AtomString::operator NSString * const): Deleted. * wtf/text/AtomStringImpl.h: (WTF::AtomStringImpl::lookUp): Deleted. (WTF::AtomStringImpl::add): Deleted. (WTF::AtomStringImpl::addWithStringTableProvider): Deleted. * wtf/text/CString.h: (WTF::CStringBuffer::data): Deleted. (WTF::CStringBuffer::length const): Deleted. (WTF::CStringBuffer::CStringBuffer): Deleted. (WTF::CStringBuffer::mutableData): Deleted. (WTF::CString::CString): Deleted. (WTF::CString::data const): Deleted. (WTF::CString::length const): Deleted. (WTF::CString::isNull const): Deleted. (WTF::CString::buffer const): Deleted. (WTF::CString::isHashTableDeletedValue const): Deleted. * wtf/text/ExternalStringImpl.h: (WTF::ExternalStringImpl::freeExternalBuffer): Deleted. * wtf/text/LineBreakIteratorPoolICU.h: * wtf/text/NullTextBreakIterator.h: * wtf/text/OrdinalNumber.h: * wtf/text/StringBuffer.h: * wtf/text/StringBuilder.h: * wtf/text/StringConcatenateNumbers.h: * wtf/text/StringHasher.h: * wtf/text/StringImpl.h: * wtf/text/StringView.cpp: * wtf/text/StringView.h: (WTF::StringView::left const): Deleted. (WTF::StringView::right const): Deleted. (WTF::StringView::underlyingStringIsValid const): Deleted. (WTF::StringView::setUnderlyingString): Deleted. * wtf/text/SymbolImpl.h: (WTF::SymbolImpl::StaticSymbolImpl::StaticSymbolImpl): Deleted. (WTF::SymbolImpl::StaticSymbolImpl::operator SymbolImpl&): Deleted. (WTF::PrivateSymbolImpl::PrivateSymbolImpl): Deleted. (WTF::RegisteredSymbolImpl::symbolRegistry const): Deleted. (WTF::RegisteredSymbolImpl::clearSymbolRegistry): Deleted. (WTF::RegisteredSymbolImpl::RegisteredSymbolImpl): Deleted. * wtf/text/SymbolRegistry.h: * wtf/text/TextBreakIterator.h: * wtf/text/TextPosition.h: * wtf/text/TextStream.h: * wtf/text/WTFString.h: (WTF::String::swap): Deleted. (WTF::String::adopt): Deleted. (WTF::String::isNull const): Deleted. (WTF::String::isEmpty const): Deleted. (WTF::String::impl const): Deleted. (WTF::String::releaseImpl): Deleted. (WTF::String::length const): Deleted. (WTF::String::characters8 const): Deleted. (WTF::String::characters16 const): Deleted. (WTF::String::is8Bit const): Deleted. (WTF::String::sizeInBytes const): Deleted. (WTF::String::operator[] const): Deleted. (WTF::String::find const): Deleted. (WTF::String::findIgnoringASCIICase const): Deleted. (WTF::String::reverseFind const): Deleted. (WTF::String::contains const): Deleted. (WTF::String::containsIgnoringASCIICase const): Deleted. (WTF::String::startsWith const): Deleted. (WTF::String::startsWithIgnoringASCIICase const): Deleted. (WTF::String::hasInfixStartingAt const): Deleted. (WTF::String::endsWith const): Deleted. (WTF::String::endsWithIgnoringASCIICase const): Deleted. (WTF::String::hasInfixEndingAt const): Deleted. (WTF::String::append): Deleted. (WTF::String::left const): Deleted. (WTF::String::right const): Deleted. (WTF::String::createUninitialized): Deleted. (WTF::String::fromUTF8WithLatin1Fallback): Deleted. (WTF::String::isAllASCII const): Deleted. (WTF::String::isAllLatin1 const): Deleted. (WTF::String::isSpecialCharacter const): Deleted. (WTF::String::isHashTableDeletedValue const): Deleted. (WTF::String::hash const): Deleted. (WTF::String::existingHash const): Deleted. * wtf/text/cf/TextBreakIteratorCF.h: * wtf/text/icu/TextBreakIteratorICU.h: * wtf/text/icu/UTextProviderLatin1.h: * wtf/threads/BinarySemaphore.h: (WTF::BinarySemaphore::waitFor): Deleted. (WTF::BinarySemaphore::wait): Deleted. * wtf/unicode/Collator.h: * wtf/win/GDIObject.h: * wtf/win/PathWalker.h: * wtf/win/Win32Handle.h: Canonical link: https://commits.webkit.org/214396@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248546 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-08-12 20:57:15 +00:00
WTF_MAKE_STRUCT_FAST_ALLOCATED;
[bmalloc] Add IsoHeap test to ensure that IsoHeap pages are not allocating too large VA https://bugs.webkit.org/show_bug.cgi?id=200103 Reviewed by Mark Lam. Source/bmalloc: * bmalloc/IsoPage.cpp: Source/WebCore: No behavior change in WebCore. * page/MemoryRelease.cpp: * page/ResourceUsageThread.h: (WebCore::TagInfo::TagInfo): Deleted. * page/cocoa/ResourceUsageThreadCocoa.mm: (WebCore::vmPageSize): Deleted. (WebCore::logFootprintComparison): Deleted. (WebCore::displayNameForVMTag): Deleted. (WebCore::pagesPerVMTag): Deleted. Source/WebCore/PAL: Move VMTag page memory investigation code from PAL to WTF to reuse it in TestWTF. * PAL.xcodeproj/project.pbxproj: * pal/PlatformMac.cmake: Source/WebKit: Move MachVMSPI.h from PAL to WTF. * Platform/cocoa/SharedMemoryCocoa.cpp: Source/WTF: We move VMTag page investigation code from PAL to WTF to use it in TestWTF. And we also accumulate allocated VA size in `reserved` field of `TagInfo`. * WTF.xcodeproj/project.pbxproj: * wtf/CMakeLists.txt: * wtf/PlatformMac.cmake: * wtf/ResourceUsage.h: Added. * wtf/cocoa/MemoryPressureHandlerCocoa.mm: * wtf/cocoa/ResourceUsageCocoa.cpp: Added. (WTF::vmPageSize): (WTF::logFootprintComparison): (WTF::displayNameForVMTag): (WTF::pagesPerVMTag): * wtf/spi/cocoa/MachVMSPI.h: Added. Tools: This patch adds tests to TestWTF IsoHeap tests to ensure that IsoHeap's component is not leaking pages or not allocating too large VAs for memory allocation. We use VMTag to get the system view of the allocated VAs and check whether it is not incredibly large. While the tests are white-box tests (it means that this is a bit flaky to the implementation changes of IsoHeap), I adjusted some threshold to make this less-flaky to the future implementation changes while it catches the severe issues we had. * TestWebKitAPI/Tests/WTF/bmalloc/IsoHeap.cpp: (assertEmptyPointerSet): (assertHasOnlyObjects): (assertClean): (TEST): (allocateAndDeallocate): Canonical link: https://commits.webkit.org/213939@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247815 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-07-25 03:42:09 +00:00
size_t dirty { 0 };
size_t reclaimable { 0 };
size_t reserved { 0 };
};
[iOS] Libdispatch, Dyld, IOKit, Mach, NSPointerFunctions, MobileGestalt SPI are not available in public SDK https://bugs.webkit.org/show_bug.cgi?id=138802 Reviewed by David Kilzer. Source/WebCore: Add SPI wrapper headers {Dispatch, DynamicLinker, IOPMLib, MachVM, NSPointerFunctions, MobileGestalt}SPI.h that forward declare applicable libdispatch, dyld, IOKit, mach, Foundation, MobileGestalt SPI and use these headers instead of the including private headers corresponding to these libraries/frameworks. * WebCore.xcodeproj/project.pbxproj: Add private headers MobileGestaltSPI.h and MachVMSPI.h, and project headers DynamicLinkerSPI.h, NSPointerFunctionsSPI.h, DispatchSPI.h and IOPMLibSPI.h. Also, sort files in Xcode project. * bindings/objc/DOMInternal.mm: Include header NSPointerFunctionsSPI.h. * bridge/objc/objc_instance.mm: Ditto; Also, sort #import directives. * platform/cocoa/DisplaySleepDisablerCocoa.cpp: Substitute header IOPMLibSPI.h for private header IOKit/pwr_mgt/IOPMLib.h. * platform/cocoa/MemoryPressureHandlerCocoa.mm: Substitute header DispatchSPI.h for private header dispatch/private.h. * platform/graphics/ios/FontServicesIOS.mm: Substitute header DynamicLinkerSPI.h for private header mach-o/dyld_priv.h. * platform/ios/PlatformScreenIOS.mm: Substitute header MobileGestaltSPI.h for private header MobileGestalt.h. * platform/spi/cocoa/DispatchSPI.h: Added. * platform/spi/cocoa/DynamicLinkerSPI.h: Added. * platform/spi/cocoa/IOPMLibSPI.h: Added. * platform/spi/cocoa/MachVMSPI.h: Added. * platform/spi/cocoa/NSPointerFunctionsSPI.h: Added. * platform/spi/ios/MobileGestaltSPI.h: Added. Source/WebKit/mac: Include headers DispatchSPI.h and MobileGestaltSPI.h instead of including libdispatch and MobileGestalt headers directly. * WebView/WebView.mm: Source/WebKit2: Include headers DispatchSPI.h and MachVMSPI.h.h instead of including libdispatch and Mach headers directly. * Platform/mac/SharedMemoryMac.cpp: * UIProcess/ios/WebMemoryPressureHandlerIOS.mm: Tools: Include header MachVMSPI.h instead of including the private header mach/mach_vm.h. * DumpRenderTree/mac/CheckedMalloc.cpp: Canonical link: https://commits.webkit.org/156686@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176265 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-11-18 18:05:57 +00:00
[bmalloc] Add IsoHeap test to ensure that IsoHeap pages are not allocating too large VA https://bugs.webkit.org/show_bug.cgi?id=200103 Reviewed by Mark Lam. Source/bmalloc: * bmalloc/IsoPage.cpp: Source/WebCore: No behavior change in WebCore. * page/MemoryRelease.cpp: * page/ResourceUsageThread.h: (WebCore::TagInfo::TagInfo): Deleted. * page/cocoa/ResourceUsageThreadCocoa.mm: (WebCore::vmPageSize): Deleted. (WebCore::logFootprintComparison): Deleted. (WebCore::displayNameForVMTag): Deleted. (WebCore::pagesPerVMTag): Deleted. Source/WebCore/PAL: Move VMTag page memory investigation code from PAL to WTF to reuse it in TestWTF. * PAL.xcodeproj/project.pbxproj: * pal/PlatformMac.cmake: Source/WebKit: Move MachVMSPI.h from PAL to WTF. * Platform/cocoa/SharedMemoryCocoa.cpp: Source/WTF: We move VMTag page investigation code from PAL to WTF to use it in TestWTF. And we also accumulate allocated VA size in `reserved` field of `TagInfo`. * WTF.xcodeproj/project.pbxproj: * wtf/CMakeLists.txt: * wtf/PlatformMac.cmake: * wtf/ResourceUsage.h: Added. * wtf/cocoa/MemoryPressureHandlerCocoa.mm: * wtf/cocoa/ResourceUsageCocoa.cpp: Added. (WTF::vmPageSize): (WTF::logFootprintComparison): (WTF::displayNameForVMTag): (WTF::pagesPerVMTag): * wtf/spi/cocoa/MachVMSPI.h: Added. Tools: This patch adds tests to TestWTF IsoHeap tests to ensure that IsoHeap's component is not leaking pages or not allocating too large VAs for memory allocation. We use VMTag to get the system view of the allocated VAs and check whether it is not incredibly large. While the tests are white-box tests (it means that this is a bit flaky to the implementation changes of IsoHeap), I adjusted some threshold to make this less-flaky to the future implementation changes while it catches the severe issues we had. * TestWebKitAPI/Tests/WTF/bmalloc/IsoHeap.cpp: (assertEmptyPointerSet): (assertHasOnlyObjects): (assertClean): (TEST): (allocateAndDeallocate): Canonical link: https://commits.webkit.org/213939@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247815 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-07-25 03:42:09 +00:00
WTF_EXPORT_PRIVATE const char* displayNameForVMTag(unsigned);
WTF_EXPORT_PRIVATE size_t vmPageSize();
WTF_EXPORT_PRIVATE std::array<TagInfo, 256> pagesPerVMTag();
WTF_EXPORT_PRIVATE void logFootprintComparison(const std::array<TagInfo, 256>&, const std::array<TagInfo, 256>&);
[bmalloc] Add IsoHeap test to ensure that IsoHeap pages are not allocating too large VA https://bugs.webkit.org/show_bug.cgi?id=200103 Reviewed by Mark Lam. Source/bmalloc: * bmalloc/IsoPage.cpp: Source/WebCore: No behavior change in WebCore. * page/MemoryRelease.cpp: * page/ResourceUsageThread.h: (WebCore::TagInfo::TagInfo): Deleted. * page/cocoa/ResourceUsageThreadCocoa.mm: (WebCore::vmPageSize): Deleted. (WebCore::logFootprintComparison): Deleted. (WebCore::displayNameForVMTag): Deleted. (WebCore::pagesPerVMTag): Deleted. Source/WebCore/PAL: Move VMTag page memory investigation code from PAL to WTF to reuse it in TestWTF. * PAL.xcodeproj/project.pbxproj: * pal/PlatformMac.cmake: Source/WebKit: Move MachVMSPI.h from PAL to WTF. * Platform/cocoa/SharedMemoryCocoa.cpp: Source/WTF: We move VMTag page investigation code from PAL to WTF to use it in TestWTF. And we also accumulate allocated VA size in `reserved` field of `TagInfo`. * WTF.xcodeproj/project.pbxproj: * wtf/CMakeLists.txt: * wtf/PlatformMac.cmake: * wtf/ResourceUsage.h: Added. * wtf/cocoa/MemoryPressureHandlerCocoa.mm: * wtf/cocoa/ResourceUsageCocoa.cpp: Added. (WTF::vmPageSize): (WTF::logFootprintComparison): (WTF::displayNameForVMTag): (WTF::pagesPerVMTag): * wtf/spi/cocoa/MachVMSPI.h: Added. Tools: This patch adds tests to TestWTF IsoHeap tests to ensure that IsoHeap's component is not leaking pages or not allocating too large VAs for memory allocation. We use VMTag to get the system view of the allocated VAs and check whether it is not incredibly large. While the tests are white-box tests (it means that this is a bit flaky to the implementation changes of IsoHeap), I adjusted some threshold to make this less-flaky to the future implementation changes while it catches the severe issues we had. * TestWebKitAPI/Tests/WTF/bmalloc/IsoHeap.cpp: (assertEmptyPointerSet): (assertHasOnlyObjects): (assertClean): (TEST): (allocateAndDeallocate): Canonical link: https://commits.webkit.org/213939@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247815 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-07-25 03:42:09 +00:00
#endif
}
[bmalloc] Add IsoHeap test to ensure that IsoHeap pages are not allocating too large VA https://bugs.webkit.org/show_bug.cgi?id=200103 Reviewed by Mark Lam. Source/bmalloc: * bmalloc/IsoPage.cpp: Source/WebCore: No behavior change in WebCore. * page/MemoryRelease.cpp: * page/ResourceUsageThread.h: (WebCore::TagInfo::TagInfo): Deleted. * page/cocoa/ResourceUsageThreadCocoa.mm: (WebCore::vmPageSize): Deleted. (WebCore::logFootprintComparison): Deleted. (WebCore::displayNameForVMTag): Deleted. (WebCore::pagesPerVMTag): Deleted. Source/WebCore/PAL: Move VMTag page memory investigation code from PAL to WTF to reuse it in TestWTF. * PAL.xcodeproj/project.pbxproj: * pal/PlatformMac.cmake: Source/WebKit: Move MachVMSPI.h from PAL to WTF. * Platform/cocoa/SharedMemoryCocoa.cpp: Source/WTF: We move VMTag page investigation code from PAL to WTF to use it in TestWTF. And we also accumulate allocated VA size in `reserved` field of `TagInfo`. * WTF.xcodeproj/project.pbxproj: * wtf/CMakeLists.txt: * wtf/PlatformMac.cmake: * wtf/ResourceUsage.h: Added. * wtf/cocoa/MemoryPressureHandlerCocoa.mm: * wtf/cocoa/ResourceUsageCocoa.cpp: Added. (WTF::vmPageSize): (WTF::logFootprintComparison): (WTF::displayNameForVMTag): (WTF::pagesPerVMTag): * wtf/spi/cocoa/MachVMSPI.h: Added. Tools: This patch adds tests to TestWTF IsoHeap tests to ensure that IsoHeap's component is not leaking pages or not allocating too large VAs for memory allocation. We use VMTag to get the system view of the allocated VAs and check whether it is not incredibly large. While the tests are white-box tests (it means that this is a bit flaky to the implementation changes of IsoHeap), I adjusted some threshold to make this less-flaky to the future implementation changes while it catches the severe issues we had. * TestWebKitAPI/Tests/WTF/bmalloc/IsoHeap.cpp: (assertEmptyPointerSet): (assertHasOnlyObjects): (assertClean): (TEST): (allocateAndDeallocate): Canonical link: https://commits.webkit.org/213939@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247815 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2019-07-25 03:42:09 +00:00
#if PLATFORM(COCOA)
using WTF::TagInfo;
using WTF::displayNameForVMTag;
using WTF::vmPageSize;
using WTF::pagesPerVMTag;
#endif