haikuwebkit/Source/WTF/wtf/PageBlock.cpp

81 lines
2.2 KiB
C++
Raw Permalink Normal View History

/*
* Copyright (C) 2010 Apple Inc. All rights reserved.
*
* 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.
*/
#include "config.h"
Use pragma once in WTF https://bugs.webkit.org/show_bug.cgi?id=190527 Reviewed by Chris Dumez. Source/WTF: We also need to consistently include wtf headers from within wtf so we can build wtf without symbol redefinition errors from including the copy in Source and the copy in the build directory. * wtf/ASCIICType.h: * wtf/Assertions.cpp: * wtf/Assertions.h: * wtf/Atomics.h: * wtf/AutomaticThread.cpp: * wtf/AutomaticThread.h: * wtf/BackwardsGraph.h: * wtf/Bag.h: * wtf/BagToHashMap.h: * wtf/BitVector.cpp: * wtf/BitVector.h: * wtf/Bitmap.h: * wtf/BloomFilter.h: * wtf/Box.h: * wtf/BubbleSort.h: * wtf/BumpPointerAllocator.h: * wtf/ByteOrder.h: * wtf/CPUTime.cpp: * wtf/CallbackAggregator.h: * wtf/CheckedArithmetic.h: * wtf/CheckedBoolean.h: * wtf/ClockType.cpp: * wtf/ClockType.h: * wtf/CommaPrinter.h: * wtf/CompilationThread.cpp: * wtf/CompilationThread.h: * wtf/Compiler.h: * wtf/ConcurrentPtrHashSet.cpp: * wtf/ConcurrentVector.h: * wtf/Condition.h: * wtf/CountingLock.cpp: * wtf/CrossThreadTaskHandler.cpp: * wtf/CryptographicUtilities.cpp: * wtf/CryptographicUtilities.h: * wtf/CryptographicallyRandomNumber.cpp: * wtf/CryptographicallyRandomNumber.h: * wtf/CurrentTime.cpp: * wtf/DataLog.cpp: * wtf/DataLog.h: * wtf/DateMath.cpp: * wtf/DateMath.h: * wtf/DecimalNumber.cpp: * wtf/DecimalNumber.h: * wtf/Deque.h: * wtf/DisallowCType.h: * wtf/Dominators.h: * wtf/DoublyLinkedList.h: * wtf/FastBitVector.cpp: * wtf/FastMalloc.cpp: * wtf/FastMalloc.h: * wtf/FeatureDefines.h: * wtf/FilePrintStream.cpp: * wtf/FilePrintStream.h: * wtf/FlipBytes.h: * wtf/FunctionDispatcher.cpp: * wtf/FunctionDispatcher.h: * wtf/GetPtr.h: * wtf/Gigacage.cpp: * wtf/GlobalVersion.cpp: * wtf/GraphNodeWorklist.h: * wtf/GregorianDateTime.cpp: * wtf/GregorianDateTime.h: * wtf/HashFunctions.h: * wtf/HashMap.h: * wtf/HashMethod.h: * wtf/HashSet.h: * wtf/HashTable.cpp: * wtf/HashTraits.h: * wtf/Indenter.h: * wtf/IndexSparseSet.h: * wtf/InlineASM.h: * wtf/Insertion.h: * wtf/IteratorAdaptors.h: * wtf/IteratorRange.h: * wtf/JSONValues.cpp: * wtf/JSValueMalloc.cpp: * wtf/LEBDecoder.h: * wtf/Language.cpp: * wtf/ListDump.h: * wtf/Lock.cpp: * wtf/Lock.h: * wtf/LockAlgorithm.h: * wtf/LockedPrintStream.cpp: * wtf/Locker.h: * wtf/MD5.cpp: * wtf/MD5.h: * wtf/MainThread.cpp: * wtf/MainThread.h: * wtf/MallocPtr.h: * wtf/MathExtras.h: * wtf/MediaTime.cpp: * wtf/MediaTime.h: * wtf/MemoryPressureHandler.cpp: * wtf/MessageQueue.h: * wtf/MetaAllocator.cpp: * wtf/MetaAllocator.h: * wtf/MetaAllocatorHandle.h: * wtf/MonotonicTime.cpp: * wtf/MonotonicTime.h: * wtf/NakedPtr.h: * wtf/NoLock.h: * wtf/NoTailCalls.h: * wtf/Noncopyable.h: * wtf/NumberOfCores.cpp: * wtf/NumberOfCores.h: * wtf/OSAllocator.h: * wtf/OSAllocatorPosix.cpp: * wtf/OSRandomSource.cpp: * wtf/OSRandomSource.h: * wtf/ObjcRuntimeExtras.h: * wtf/OrderMaker.h: * wtf/PackedIntVector.h: * wtf/PageAllocation.h: * wtf/PageBlock.cpp: * wtf/PageBlock.h: * wtf/PageReservation.h: * wtf/ParallelHelperPool.cpp: * wtf/ParallelHelperPool.h: * wtf/ParallelJobs.h: * wtf/ParallelJobsLibdispatch.h: * wtf/ParallelVectorIterator.h: * wtf/ParkingLot.cpp: * wtf/ParkingLot.h: * wtf/Platform.h: * wtf/PointerComparison.h: * wtf/Poisoned.cpp: * wtf/PrintStream.cpp: * wtf/PrintStream.h: * wtf/ProcessID.h: * wtf/ProcessPrivilege.cpp: * wtf/RAMSize.cpp: * wtf/RAMSize.h: * wtf/RandomDevice.cpp: * wtf/RandomNumber.cpp: * wtf/RandomNumber.h: * wtf/RandomNumberSeed.h: * wtf/RangeSet.h: * wtf/RawPointer.h: * wtf/ReadWriteLock.cpp: * wtf/RedBlackTree.h: * wtf/Ref.h: * wtf/RefCountedArray.h: * wtf/RefCountedLeakCounter.cpp: * wtf/RefCountedLeakCounter.h: * wtf/RefCounter.h: * wtf/RefPtr.h: * wtf/RetainPtr.h: * wtf/RunLoop.cpp: * wtf/RunLoop.h: * wtf/RunLoopTimer.h: * wtf/RunLoopTimerCF.cpp: * wtf/SHA1.cpp: * wtf/SHA1.h: * wtf/SaturatedArithmetic.h: (saturatedSubtraction): * wtf/SchedulePair.h: * wtf/SchedulePairCF.cpp: * wtf/SchedulePairMac.mm: * wtf/ScopedLambda.h: * wtf/Seconds.cpp: * wtf/Seconds.h: * wtf/SegmentedVector.h: * wtf/SentinelLinkedList.h: * wtf/SharedTask.h: * wtf/SimpleStats.h: * wtf/SingleRootGraph.h: * wtf/SinglyLinkedList.h: * wtf/SixCharacterHash.cpp: * wtf/SixCharacterHash.h: * wtf/SmallPtrSet.h: * wtf/Spectrum.h: * wtf/StackBounds.cpp: * wtf/StackBounds.h: * wtf/StackStats.cpp: * wtf/StackStats.h: * wtf/StackTrace.cpp: * wtf/StdLibExtras.h: * wtf/StreamBuffer.h: * wtf/StringHashDumpContext.h: * wtf/StringPrintStream.cpp: * wtf/StringPrintStream.h: * wtf/ThreadGroup.cpp: * wtf/ThreadMessage.cpp: * wtf/ThreadSpecific.h: * wtf/Threading.cpp: * wtf/Threading.h: * wtf/ThreadingPrimitives.h: * wtf/ThreadingPthreads.cpp: * wtf/TimeWithDynamicClockType.cpp: * wtf/TimeWithDynamicClockType.h: * wtf/TimingScope.cpp: * wtf/TinyLRUCache.h: * wtf/TinyPtrSet.h: * wtf/TriState.h: * wtf/TypeCasts.h: * wtf/UUID.cpp: * wtf/UnionFind.h: * wtf/VMTags.h: * wtf/ValueCheck.h: * wtf/Vector.h: * wtf/VectorTraits.h: * wtf/WallTime.cpp: * wtf/WallTime.h: * wtf/WeakPtr.h: * wtf/WeakRandom.h: * wtf/WordLock.cpp: * wtf/WordLock.h: * wtf/WorkQueue.cpp: * wtf/WorkQueue.h: * wtf/WorkerPool.cpp: * wtf/cf/LanguageCF.cpp: * wtf/cf/RunLoopCF.cpp: * wtf/cocoa/Entitlements.mm: * wtf/cocoa/MachSendRight.cpp: * wtf/cocoa/MainThreadCocoa.mm: * wtf/cocoa/MemoryFootprintCocoa.cpp: * wtf/cocoa/WorkQueueCocoa.cpp: * wtf/dtoa.cpp: * wtf/dtoa.h: * wtf/ios/WebCoreThread.cpp: * wtf/ios/WebCoreThread.h: * wtf/mac/AppKitCompatibilityDeclarations.h: * wtf/mac/DeprecatedSymbolsUsedBySafari.mm: * wtf/mbmalloc.cpp: * wtf/persistence/PersistentCoders.cpp: * wtf/persistence/PersistentDecoder.cpp: * wtf/persistence/PersistentEncoder.cpp: * wtf/spi/cf/CFBundleSPI.h: * wtf/spi/darwin/CommonCryptoSPI.h: * wtf/text/ASCIIFastPath.h: * wtf/text/ASCIILiteral.cpp: * wtf/text/AtomicString.cpp: * wtf/text/AtomicString.h: * wtf/text/AtomicStringHash.h: * wtf/text/AtomicStringImpl.cpp: * wtf/text/AtomicStringImpl.h: * wtf/text/AtomicStringTable.cpp: * wtf/text/AtomicStringTable.h: * wtf/text/Base64.cpp: * wtf/text/CString.cpp: * wtf/text/CString.h: * wtf/text/ConversionMode.h: * wtf/text/ExternalStringImpl.cpp: * wtf/text/IntegerToStringConversion.h: * wtf/text/LChar.h: * wtf/text/LineEnding.cpp: * wtf/text/StringBuffer.h: * wtf/text/StringBuilder.cpp: * wtf/text/StringBuilder.h: * wtf/text/StringBuilderJSON.cpp: * wtf/text/StringCommon.h: * wtf/text/StringConcatenate.h: * wtf/text/StringHash.h: * wtf/text/StringImpl.cpp: * wtf/text/StringImpl.h: * wtf/text/StringOperators.h: * wtf/text/StringView.cpp: * wtf/text/StringView.h: * wtf/text/SymbolImpl.cpp: * wtf/text/SymbolRegistry.cpp: * wtf/text/SymbolRegistry.h: * wtf/text/TextBreakIterator.cpp: * wtf/text/TextBreakIterator.h: * wtf/text/TextBreakIteratorInternalICU.h: * wtf/text/TextPosition.h: * wtf/text/TextStream.cpp: * wtf/text/UniquedStringImpl.h: * wtf/text/WTFString.cpp: * wtf/text/WTFString.h: * wtf/text/cocoa/StringCocoa.mm: * wtf/text/cocoa/StringViewCocoa.mm: * wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp: * wtf/text/icu/UTextProvider.cpp: * wtf/text/icu/UTextProvider.h: * wtf/text/icu/UTextProviderLatin1.cpp: * wtf/text/icu/UTextProviderLatin1.h: * wtf/text/icu/UTextProviderUTF16.cpp: * wtf/text/icu/UTextProviderUTF16.h: * wtf/threads/BinarySemaphore.cpp: * wtf/threads/BinarySemaphore.h: * wtf/threads/Signals.cpp: * wtf/unicode/CharacterNames.h: * wtf/unicode/Collator.h: * wtf/unicode/CollatorDefault.cpp: * wtf/unicode/UTF8.cpp: * wtf/unicode/UTF8.h: Tools: Put WorkQueue in namespace DRT so it does not conflict with WTF::WorkQueue. * DumpRenderTree/TestRunner.cpp: (TestRunner::queueLoadHTMLString): (TestRunner::queueLoadAlternateHTMLString): (TestRunner::queueBackNavigation): (TestRunner::queueForwardNavigation): (TestRunner::queueLoadingScript): (TestRunner::queueNonLoadingScript): (TestRunner::queueReload): * DumpRenderTree/WorkQueue.cpp: (WorkQueue::singleton): Deleted. (WorkQueue::WorkQueue): Deleted. (WorkQueue::queue): Deleted. (WorkQueue::dequeue): Deleted. (WorkQueue::count): Deleted. (WorkQueue::clear): Deleted. (WorkQueue::processWork): Deleted. * DumpRenderTree/WorkQueue.h: (WorkQueue::setFrozen): Deleted. * DumpRenderTree/WorkQueueItem.h: * DumpRenderTree/mac/DumpRenderTree.mm: (runTest): * DumpRenderTree/mac/FrameLoadDelegate.mm: (-[FrameLoadDelegate processWork:]): (-[FrameLoadDelegate webView:locationChangeDone:forDataSource:]): * DumpRenderTree/mac/TestRunnerMac.mm: (TestRunner::notifyDone): (TestRunner::forceImmediateCompletion): (TestRunner::queueLoad): * DumpRenderTree/win/DumpRenderTree.cpp: (runTest): * DumpRenderTree/win/FrameLoadDelegate.cpp: (FrameLoadDelegate::processWork): (FrameLoadDelegate::locationChangeDone): * DumpRenderTree/win/TestRunnerWin.cpp: (TestRunner::notifyDone): (TestRunner::forceImmediateCompletion): (TestRunner::queueLoad): Canonical link: https://commits.webkit.org/205473@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237099 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-10-15 14:24:49 +00:00
#include <wtf/PageBlock.h>
[Qt] [Symbian] Remove support for the Symbian platform for the QtWebKit port https://bugs.webkit.org/show_bug.cgi?id=69920 Patch by Laszlo Gombos <laszlo.1.gombos@nokia.com> on 2011-10-15 Reviewed by Kenneth Rohde Christiansen. * Source/WebKit.pri: * Source/WebKit.pro: * DumpRenderTree/qt/DumpRenderTree.pro: * DumpRenderTree/qt/DumpRenderTreeQt.cpp: (WebCore::DumpRenderTree::open): * DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro: * QtTestBrowser/QtTestBrowser.pro: * QtTestBrowser/launcherwindow.cpp: (LauncherWindow::screenshot): (LauncherWindow::showFPS): (LauncherWindow::updateFPS): * QtTestBrowser/launcherwindow.h: (WindowOptions::WindowOptions): * QtTestBrowser/mainwindow.cpp: (MainWindow::buildUI): * Scripts/webkitpy/style/checker.py: Remove rules for the WebKit/qt/symbian/platformplugin directory. * Scripts/webkitpy/style/checker_unittest.py: * Tools.pro: * WebKitTestRunner/InjectedBundle/qt/InjectedBundle.pro: * WebKitTestRunner/InjectedBundle/qt/LayoutTestControllerQt.cpp: (WTR::LayoutTestController::platformInitialize): * WebKitTestRunner/qt/TestControllerQt.cpp: (WTR::isExistingLibrary): * WebKitTestRunner/qt/WebKitTestRunner.pro: * benchmarks/qscriptengine/qscriptengine.pro: * JavaScriptCore.pri: * JavaScriptCore.pro: * heap/MarkStack.h: (JSC::::shrinkAllocation): * jit/ExecutableAllocator.cpp: * jit/ExecutableAllocator.h: (JSC::ExecutableAllocator::cacheFlush): * jit/JITStubs.cpp: * jsc.pro: * runtime/ArrayPrototype.cpp: (JSC::arrayProtoFuncToString): * runtime/DatePrototype.cpp: (JSC::formatLocaleDate): * runtime/StringPrototype.cpp: (JSC::stringProtoFuncLastIndexOf): * runtime/TimeoutChecker.cpp: (JSC::getCPUTime): * wtf/Assertions.cpp: * wtf/Assertions.h: * wtf/Atomics.h: * wtf/MathExtras.h: * wtf/OSAllocator.h: (WTF::OSAllocator::decommitAndRelease): * wtf/OSAllocatorSymbian.cpp: Removed. * wtf/OSRandomSource.cpp: (WTF::cryptographicallyRandomValuesFromOS): * wtf/PageAllocation.h: * wtf/PageAllocatorSymbian.h: Removed. * wtf/PageBlock.cpp: * wtf/Platform.h: * wtf/StackBounds.cpp: * wtf/wtf.pri: * Api/qgraphicswebview.cpp: (QGraphicsWebView::setPage): * Api/qwebpage.cpp: (QWebPage::userAgentForUrl): * Api/qwebview.cpp: (QWebView::QWebView): * QtWebKit.pro: * WebCoreSupport/EditorClientQt.cpp: (WebCore::EditorClientQt::setInputMethodState): * WebCoreSupport/QtFallbackWebPopup.cpp: (WebCore::QtFallbackWebPopup::populate): * declarative/declarative.pro: * declarative/qdeclarativewebview.cpp: (QDeclarativeWebView::setPage): * symbian: Removed. * symbian/backup_registration.xml: Removed. * symbian/bwins: Removed. * symbian/bwins/QtWebKitu.def: Removed. * symbian/eabi: Removed. * symbian/eabi/QtWebKitu.def: Removed. * symbian/platformplugin: Removed. * symbian/platformplugin/HTML5VideoPlugin.cpp: Removed. * symbian/platformplugin/HTML5VideoPlugin.h: Removed. * symbian/platformplugin/HTML5VideoWidget.cpp: Removed. * symbian/platformplugin/HTML5VideoWidget.h: Removed. * symbian/platformplugin/OverlayWidget.cpp: Removed. * symbian/platformplugin/OverlayWidget.h: Removed. * symbian/platformplugin/PlayerButton.cpp: Removed. * symbian/platformplugin/PlayerButton.h: Removed. * symbian/platformplugin/PlayerLabel.cpp: Removed. * symbian/platformplugin/PlayerLabel.h: Removed. * symbian/platformplugin/WebPlugin.cpp: Removed. * symbian/platformplugin/WebPlugin.h: Removed. * symbian/platformplugin/images: Removed. * symbian/platformplugin/images/button_cannotplay.png: Removed. * symbian/platformplugin/images/button_close.png: Removed. * symbian/platformplugin/images/button_pause.png: Removed. * symbian/platformplugin/images/button_play.png: Removed. * symbian/platformplugin/images/button_sound_off.png: Removed. * symbian/platformplugin/images/button_sound_on.png: Removed. * symbian/platformplugin/images/loading_buffering_1.png: Removed. * symbian/platformplugin/images/loading_buffering_2.png: Removed. * symbian/platformplugin/images/loading_buffering_3.png: Removed. * symbian/platformplugin/images/loading_buffering_4.png: Removed. * symbian/platformplugin/platformplugin.pro: Removed. * symbian/platformplugin/platformplugin.qrc: Removed. * symbian/platformplugin/qss: Removed. * symbian/platformplugin/qss/OverlayWidget.qss: Removed. * symbian/platformplugin/qwebkitplatformplugin.h: Removed. * tests/qgraphicswebview/tst_qgraphicswebview.cpp: (tst_QGraphicsWebView::focusInputTypes): * tests/qwebframe/qwebframe.pro: * tests/qwebframe/tst_qwebframe.cpp: * tests/qwebview/tst_qwebview.cpp: (tst_QWebView::focusInputTypes): * tests/tests.pri: * WebCore.gypi: * WebCore.pri: * WebCore.pro: * bindings/v8/V8GCController.cpp: (WebCore::V8GCController::checkMemoryUsage): * config.h: * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::operator int): * features.pri: * page/NavigatorBase.cpp: * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate): * platform/network/qt/ResourceRequestQt.cpp: (WebCore::initializeMaximumHTTPConnectionCountPerHost): * platform/text/qt/TextCodecQt.cpp: (WebCore::TextCodecQt::decode): * plugins/PluginDatabase.cpp: * plugins/PluginPackage.cpp: (WebCore::PluginPackage::unload): * plugins/PluginPackage.h: (WebCore::PluginPackage::version): * plugins/PluginView.cpp: (WebCore::PluginView::setFrameRect): * plugins/PluginView.h: * plugins/npapi.h: * plugins/symbian: Removed. * plugins/symbian/PluginContainerSymbian.cpp: Removed. * plugins/symbian/PluginContainerSymbian.h: Removed. * plugins/symbian/PluginDatabaseSymbian.cpp: Removed. * plugins/symbian/PluginPackageSymbian.cpp: Removed. * plugins/symbian/PluginViewSymbian.cpp: Removed. * plugins/symbian/npinterface.h: Removed. Canonical link: https://commits.webkit.org/86285@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@97557 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2011-10-15 13:25:09 +00:00
#if OS(UNIX)
#include <unistd.h>
#endif
#if OS(WINDOWS)
#include <malloc.h>
#include <windows.h>
#endif
namespace WTF {
static size_t s_pageSize;
static size_t s_pageMask;
#if OS(UNIX)
inline size_t systemPageSize()
{
return sysconf(_SC_PAGESIZE);
}
#elif OS(WINDOWS)
inline size_t systemPageSize()
{
static size_t size = 0;
SYSTEM_INFO system_info;
GetSystemInfo(&system_info);
size = system_info.dwPageSize;
return size;
}
#endif
size_t pageSize()
{
if (!s_pageSize) {
s_pageSize = systemPageSize();
RELEASE_ASSERT(isPowerOfTwo(s_pageSize));
RELEASE_ASSERT_WITH_MESSAGE(s_pageSize <= CeilingOnPageSize, "CeilingOnPageSize is too low, raise it in PageBlock.h!");
}
return s_pageSize;
}
size_t pageMask()
{
if (!s_pageMask)
s_pageMask = ~(pageSize() - 1);
return s_pageMask;
}
} // namespace WTF