Title: [229893] trunk/Source
Revision
229893
Author
utatane....@gmail.com
Date
2018-03-23 05:34:08 -0700 (Fri, 23 Mar 2018)

Log Message

[WTF] Add standard containers with FastAllocator specialization
https://bugs.webkit.org/show_bug.cgi?id=183789

Reviewed by Darin Adler.

Source/_javascript_Core:

* b3/air/testair.cpp:
* b3/testb3.cpp:
(JSC::B3::testDoubleLiteralComparison):
(JSC::B3::testFloatEqualOrUnorderedFoldingNaN):
* dfg/DFGGraph.h:
* dfg/DFGIntegerCheckCombiningPhase.cpp:
* dfg/DFGObjectAllocationSinkingPhase.cpp:
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::switchStringSlow):
* runtime/FunctionHasExecutedCache.h:
* runtime/TypeLocationCache.h:

Source/WebCore:

* Modules/indexeddb/IDBKeyData.h:
* Modules/mediasource/SampleMap.h:
* Modules/mediasource/SourceBuffer.cpp:
* Modules/webauthn/cbor/CBORValue.h:
It did not use FastAllocator for its container.

* page/WheelEventTestTrigger.h:
* platform/audio/PlatformMediaSessionManager.h:
* platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h:
* platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
* platform/graphics/cv/VideoTextureCopierCV.cpp:
(WebCore::YCbCrToRGBMatrixForRangeAndTransferFunction):
* platform/mock/mediasource/MockSourceBufferPrivate.cpp:
* platform/wpe/PlatformPasteboardWPE.cpp:
* rendering/OrderIterator.h:

Source/WTF:

Sometimes we want standard containers due to various reasons.
For example, WTF::HashMap lacks the ability to hold all the
integer keys since it uses 0 for empty value and -1 for deleted
value. However, using std::containers use std::allocator without
specialization.

This patch introduces WTF::{StdMap, StdSet, StdList, StdUnorderedMap, StdUnorderedSet}.
They are standard containers with FastAllocator specialization.

* WTF.xcodeproj/project.pbxproj:
* wtf/CMakeLists.txt:
* wtf/StdList.h: Copied from Source/_javascript_Core/runtime/TypeLocationCache.h.
* wtf/StdMap.h: Copied from Source/_javascript_Core/runtime/TypeLocationCache.h.
* wtf/StdSet.h: Copied from Source/_javascript_Core/runtime/TypeLocationCache.h.
* wtf/StdUnorderedMap.h: Copied from Source/_javascript_Core/runtime/TypeLocationCache.h.
* wtf/StdUnorderedSet.h: Copied from Source/_javascript_Core/runtime/TypeLocationCache.h.

Modified Paths

Added Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (229892 => 229893)


--- trunk/Source/_javascript_Core/ChangeLog	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/_javascript_Core/ChangeLog	2018-03-23 12:34:08 UTC (rev 229893)
@@ -1,5 +1,24 @@
 2018-03-23  Yusuke Suzuki  <utatane....@gmail.com>
 
+        [WTF] Add standard containers with FastAllocator specialization
+        https://bugs.webkit.org/show_bug.cgi?id=183789
+
+        Reviewed by Darin Adler.
+
+        * b3/air/testair.cpp:
+        * b3/testb3.cpp:
+        (JSC::B3::testDoubleLiteralComparison):
+        (JSC::B3::testFloatEqualOrUnorderedFoldingNaN):
+        * dfg/DFGGraph.h:
+        * dfg/DFGIntegerCheckCombiningPhase.cpp:
+        * dfg/DFGObjectAllocationSinkingPhase.cpp:
+        * ftl/FTLLowerDFGToB3.cpp:
+        (JSC::FTL::DFG::LowerDFGToB3::switchStringSlow):
+        * runtime/FunctionHasExecutedCache.h:
+        * runtime/TypeLocationCache.h:
+
+2018-03-23  Yusuke Suzuki  <utatane....@gmail.com>
+
         [FTL] Fix ArrayPush(ArrayStorage)'s abstract heap
         https://bugs.webkit.org/show_bug.cgi?id=182960
 

Modified: trunk/Source/_javascript_Core/b3/air/testair.cpp (229892 => 229893)


--- trunk/Source/_javascript_Core/b3/air/testair.cpp	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/_javascript_Core/b3/air/testair.cpp	2018-03-23 12:34:08 UTC (rev 229893)
@@ -40,10 +40,10 @@
 #include "LinkBuffer.h"
 #include "PureNaN.h"
 #include <cmath>
-#include <map>
 #include <string>
 #include <wtf/Lock.h>
 #include <wtf/NumberOfCores.h>
+#include <wtf/StdMap.h>
 #include <wtf/Threading.h>
 
 // We don't have a NO_RETURN_DUE_TO_EXIT, nor should we. That's ridiculous.
@@ -124,11 +124,11 @@
 void loadConstantImpl(BasicBlock* block, T value, B3::Air::Opcode move, Tmp tmp, Tmp scratch)
 {
     static StaticLock lock;
-    static std::map<T, T*>* map; // I'm not messing with HashMap's problems with integers.
+    static StdMap<T, T*>* map; // I'm not messing with HashMap's problems with integers.
 
     LockHolder locker(lock);
     if (!map)
-        map = new std::map<T, T*>();
+        map = new StdMap<T, T*>();
 
     if (!map->count(value))
         (*map)[value] = new T(value);

Modified: trunk/Source/_javascript_Core/b3/testb3.cpp (229892 => 229893)


--- trunk/Source/_javascript_Core/b3/testb3.cpp	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/_javascript_Core/b3/testb3.cpp	2018-03-23 12:34:08 UTC (rev 229893)
@@ -67,12 +67,12 @@
 #include "LinkBuffer.h"
 #include "PureNaN.h"
 #include <cmath>
-#include <list>
 #include <string>
 #include <wtf/FastTLS.h>
 #include <wtf/ListDump.h>
 #include <wtf/Lock.h>
 #include <wtf/NumberOfCores.h>
+#include <wtf/StdList.h>
 #include <wtf/Threading.h>
 
 // We don't have a NO_RETURN_DUE_TO_EXIT, nor should we. That's ridiculous.
@@ -16022,7 +16022,7 @@
 void testDoubleLiteralComparison(double a, double b)
 {
     using Test = std::tuple<B3::Opcode, bool (*)(double, double)>;
-    std::list<Test> tests = {
+    StdList<Test> tests = {
         Test { NotEqual, doubleNeq },
         Test { Equal, doubleEq },
         Test { EqualOrUnordered, doubleEq },
@@ -16076,7 +16076,7 @@
 
 void testFloatEqualOrUnorderedFoldingNaN()
 {
-    std::list<float> nans = {
+    StdList<float> nans = {
         bitwise_cast<float>(0xfffffffd),
         bitwise_cast<float>(0xfffffffe),
         bitwise_cast<float>(0xfffffff0),

Modified: trunk/Source/_javascript_Core/dfg/DFGGraph.h (229892 => 229893)


--- trunk/Source/_javascript_Core/dfg/DFGGraph.h	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/_javascript_Core/dfg/DFGGraph.h	2018-03-23 12:34:08 UTC (rev 229893)
@@ -39,11 +39,11 @@
 #include "DFGScannable.h"
 #include "FullBytecodeLiveness.h"
 #include "MethodOfGettingAValueProfile.h"
-#include <unordered_map>
 #include <wtf/BitVector.h>
 #include <wtf/HashMap.h>
 #include <wtf/Vector.h>
 #include <wtf/StdLibExtras.h>
+#include <wtf/StdUnorderedMap.h>
 
 namespace WTF {
 template <typename T> class SingleRootGraph;
@@ -1080,7 +1080,7 @@
     HashMap<const StringImpl*, String> m_copiedStrings;
 
 #if USE(JSVALUE32_64)
-    std::unordered_map<int64_t, double*, std::hash<int64_t>, std::equal_to<int64_t>, FastAllocator<std::pair<const int64_t, double*>>> m_doubleConstantsMap;
+    StdUnorderedMap<int64_t, double*> m_doubleConstantsMap;
     std::unique_ptr<Bag<double>> m_doubleConstants;
 #endif
     

Modified: trunk/Source/_javascript_Core/dfg/DFGIntegerCheckCombiningPhase.cpp (229892 => 229893)


--- trunk/Source/_javascript_Core/dfg/DFGIntegerCheckCombiningPhase.cpp	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/_javascript_Core/dfg/DFGIntegerCheckCombiningPhase.cpp	2018-03-23 12:34:08 UTC (rev 229893)
@@ -34,8 +34,8 @@
 #include "DFGPredictionPropagationPhase.h"
 #include "DFGVariableAccessDataDump.h"
 #include "JSCInlines.h"
-#include <unordered_map>
 #include <wtf/HashMethod.h>
+#include <wtf/StdUnorderedMap.h>
 
 namespace JSC { namespace DFG {
 
@@ -377,7 +377,7 @@
                 nodeIndex, origin, jsNumber(addend), source.useKind()));
     }
     
-    using RangeMap = std::unordered_map<RangeKey, Range, HashMethod<RangeKey>, std::equal_to<RangeKey>, FastAllocator<std::pair<const RangeKey, Range>>>;
+    using RangeMap = StdUnorderedMap<RangeKey, Range, HashMethod<RangeKey>>;
     RangeMap m_map;
     
     InsertionSet m_insertionSet;

Modified: trunk/Source/_javascript_Core/dfg/DFGObjectAllocationSinkingPhase.cpp (229892 => 229893)


--- trunk/Source/_javascript_Core/dfg/DFGObjectAllocationSinkingPhase.cpp	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/_javascript_Core/dfg/DFGObjectAllocationSinkingPhase.cpp	2018-03-23 12:34:08 UTC (rev 229893)
@@ -41,9 +41,8 @@
 #include "DFGSSACalculator.h"
 #include "DFGValidate.h"
 #include "JSCInlines.h"
+#include <wtf/StdList.h>
 
-#include <list>
-
 namespace JSC { namespace DFG {
 
 namespace {
@@ -1384,7 +1383,7 @@
         // Nodes without remaining unmaterialized fields will be
         // materialized first - amongst the remaining unmaterialized
         // nodes
-        std::list<Allocation, FastAllocator<Allocation>> toMaterialize;
+        StdList<Allocation> toMaterialize;
         auto firstPos = toMaterialize.begin();
         auto materializeFirst = [&] (Allocation&& allocation) {
             materialize(allocation.identifier());

Modified: trunk/Source/_javascript_Core/ftl/FTLLowerDFGToB3.cpp (229892 => 229893)


--- trunk/Source/_javascript_Core/ftl/FTLLowerDFGToB3.cpp	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/_javascript_Core/ftl/FTLLowerDFGToB3.cpp	2018-03-23 12:34:08 UTC (rev 229893)
@@ -91,10 +91,10 @@
 #include "VirtualRegister.h"
 #include "Watchdog.h"
 #include <atomic>
-#include <unordered_set>
 #include <wtf/Box.h>
 #include <wtf/Gigacage.h>
 #include <wtf/RecursableLambda.h>
+#include <wtf/StdUnorderedSet.h>
 
 #undef RELEASE_ASSERT
 #define RELEASE_ASSERT(assertion) do { \
@@ -13492,7 +13492,7 @@
         
         Vector<SwitchCase> cases;
         // These may be negative, or zero, or probably other stuff, too. We don't want to mess with HashSet's corner cases and we don't really care about throughput here.
-        std::unordered_set<int32_t, std::hash<int32_t>, std::equal_to<int32_t>, FastAllocator<int32_t>> alreadyHandled;
+        StdUnorderedSet<int32_t> alreadyHandled;
         for (unsigned i = 0; i < data->cases.size(); ++i) {
             // FIXME: The fact that we're using the bytecode's switch table means that the
             // following DFG IR transformation would be invalid.

Modified: trunk/Source/_javascript_Core/runtime/FunctionHasExecutedCache.h (229892 => 229893)


--- trunk/Source/_javascript_Core/runtime/FunctionHasExecutedCache.h	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/_javascript_Core/runtime/FunctionHasExecutedCache.h	2018-03-23 12:34:08 UTC (rev 229893)
@@ -25,8 +25,8 @@
 
 #pragma once
 
-#include <unordered_map>
 #include <wtf/HashMethod.h>
+#include <wtf/StdUnorderedMap.h>
 #include <wtf/Vector.h>
 
 namespace JSC {
@@ -54,8 +54,8 @@
     Vector<std::tuple<bool, unsigned, unsigned>> getFunctionRanges(intptr_t id);
 
 private:
-    using RangeMap = std::unordered_map<FunctionRange, bool, HashMethod<FunctionRange>, std::equal_to<FunctionRange>, FastAllocator<std::pair<const FunctionRange, bool>>>;
-    using SourceIDToRangeMap = std::unordered_map<intptr_t, RangeMap, std::hash<intptr_t>, std::equal_to<intptr_t>, FastAllocator<std::pair<const intptr_t, RangeMap>>>;
+    using RangeMap = StdUnorderedMap<FunctionRange, bool, HashMethod<FunctionRange>>;
+    using SourceIDToRangeMap = StdUnorderedMap<intptr_t, RangeMap>;
     SourceIDToRangeMap m_rangeMap;
 };
 

Modified: trunk/Source/_javascript_Core/runtime/TypeLocationCache.h (229892 => 229893)


--- trunk/Source/_javascript_Core/runtime/TypeLocationCache.h	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/_javascript_Core/runtime/TypeLocationCache.h	2018-03-23 12:34:08 UTC (rev 229893)
@@ -26,9 +26,9 @@
 #pragma once
 
 #include "TypeLocation.h"
-#include <unordered_map>
 #include <wtf/FastMalloc.h>
 #include <wtf/HashMethod.h>
+#include <wtf/StdUnorderedMap.h>
 
 namespace JSC {
 
@@ -59,7 +59,7 @@
 
     std::pair<TypeLocation*, bool> getTypeLocation(GlobalVariableID, intptr_t, unsigned start, unsigned end, RefPtr<TypeSet>&&, VM*);
 private:
-    using LocationMap = std::unordered_map<LocationKey, TypeLocation*, HashMethod<LocationKey>, std::equal_to<LocationKey>, FastAllocator<std::pair<const LocationKey, TypeLocation*>>>;
+    using LocationMap = StdUnorderedMap<LocationKey, TypeLocation*, HashMethod<LocationKey>>;
     LocationMap m_locationMap;
 };
 

Modified: trunk/Source/WTF/ChangeLog (229892 => 229893)


--- trunk/Source/WTF/ChangeLog	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/WTF/ChangeLog	2018-03-23 12:34:08 UTC (rev 229893)
@@ -1,3 +1,27 @@
+2018-03-23  Yusuke Suzuki  <utatane....@gmail.com>
+
+        [WTF] Add standard containers with FastAllocator specialization
+        https://bugs.webkit.org/show_bug.cgi?id=183789
+
+        Reviewed by Darin Adler.
+
+        Sometimes we want standard containers due to various reasons.
+        For example, WTF::HashMap lacks the ability to hold all the
+        integer keys since it uses 0 for empty value and -1 for deleted
+        value. However, using std::containers use std::allocator without
+        specialization.
+
+        This patch introduces WTF::{StdMap, StdSet, StdList, StdUnorderedMap, StdUnorderedSet}.
+        They are standard containers with FastAllocator specialization.
+
+        * WTF.xcodeproj/project.pbxproj:
+        * wtf/CMakeLists.txt:
+        * wtf/StdList.h: Copied from Source/_javascript_Core/runtime/TypeLocationCache.h.
+        * wtf/StdMap.h: Copied from Source/_javascript_Core/runtime/TypeLocationCache.h.
+        * wtf/StdSet.h: Copied from Source/_javascript_Core/runtime/TypeLocationCache.h.
+        * wtf/StdUnorderedMap.h: Copied from Source/_javascript_Core/runtime/TypeLocationCache.h.
+        * wtf/StdUnorderedSet.h: Copied from Source/_javascript_Core/runtime/TypeLocationCache.h.
+
 2018-03-22  Tim Horton  <timothy_hor...@apple.com>
 
         Adopt USE(OPENGL[_ES]) in more places

Modified: trunk/Source/WTF/WTF.xcodeproj/project.pbxproj (229892 => 229893)


--- trunk/Source/WTF/WTF.xcodeproj/project.pbxproj	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/WTF/WTF.xcodeproj/project.pbxproj	2018-03-23 12:34:08 UTC (rev 229893)
@@ -535,6 +535,11 @@
 		A8A4730E151A825B004123FF /* StackBounds.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StackBounds.cpp; sourceTree = "<group>"; };
 		A8A4730F151A825B004123FF /* StackBounds.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StackBounds.h; sourceTree = "<group>"; };
 		A8A47311151A825B004123FF /* StdLibExtras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StdLibExtras.h; sourceTree = "<group>"; };
+		FF0A436588954F3CB07DBECA /* StdList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StdList.h; sourceTree = "<group>"; };
+		391BD6BA4D164FD294F9A93D /* StdMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StdMap.h; sourceTree = "<group>"; };
+		53F08A1BA39D49A8BAD369A1 /* StdSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StdSet.h; sourceTree = "<group>"; };
+		793BFADD9CED44B8B9FBCA16 /* StdUnorderedMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StdUnorderedMap.h; sourceTree = "<group>"; };
+		132743924FC54E469F5A8E6E /* StdUnorderedSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StdUnorderedSet.h; sourceTree = "<group>"; };
 		A8A47313151A825B004123FF /* StringExtras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringExtras.h; sourceTree = "<group>"; };
 		A8A47314151A825B004123FF /* Hasher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Hasher.h; sourceTree = "<group>"; };
 		A8A4731A151A825B004123FF /* SetForScope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SetForScope.h; sourceTree = "<group>"; };
@@ -1061,6 +1066,11 @@
 				313EDEC9778E49C9BEA91CFC /* StackTrace.cpp */,
 				EF7D6CD59D8642A8A0DA86AD /* StackTrace.h */,
 				A8A47311151A825B004123FF /* StdLibExtras.h */,
+				FF0A436588954F3CB07DBECA /* StdList.h */,
+				391BD6BA4D164FD294F9A93D /* StdMap.h */,
+				53F08A1BA39D49A8BAD369A1 /* StdSet.h */,
+				793BFADD9CED44B8B9FBCA16 /* StdUnorderedMap.h */,
+				132743924FC54E469F5A8E6E /* StdUnorderedSet.h */,
 				C4F8A93619C65EB400B2B15D /* Stopwatch.h */,
 				1A6BB768162F300500DD16DB /* StreamBuffer.h */,
 				A8A47313151A825B004123FF /* StringExtras.h */,

Modified: trunk/Source/WTF/wtf/CMakeLists.txt (229892 => 229893)


--- trunk/Source/WTF/wtf/CMakeLists.txt	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/WTF/wtf/CMakeLists.txt	2018-03-23 12:34:08 UTC (rev 229893)
@@ -210,6 +210,11 @@
     StackStats.h
     StackTrace.h
     StdLibExtras.h
+    StdList.h
+    StdMap.h
+    StdSet.h
+    StdUnorderedMap.h
+    StdUnorderedSet.h
     Stopwatch.h
     StreamBuffer.h
     StringExtras.h

Copied: trunk/Source/WTF/wtf/StdList.h (from rev 229892, trunk/Source/_javascript_Core/runtime/TypeLocationCache.h) (0 => 229893)


--- trunk/Source/WTF/wtf/StdList.h	                        (rev 0)
+++ trunk/Source/WTF/wtf/StdList.h	2018-03-23 12:34:08 UTC (rev 229893)
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2018 Yusuke Suzuki <utatane....@gmail.com>.
+ *
+ * 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. ``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
+ * 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.
+ */
+
+#pragma once
+
+#include <list>
+#include <wtf/FastMalloc.h>
+
+namespace WTF {
+
+template<typename T, typename Allocator = FastAllocator<T>>
+using StdList = std::list<T, Allocator>;
+
+} // namespace WTF
+
+using WTF::StdList;

Copied: trunk/Source/WTF/wtf/StdMap.h (from rev 229892, trunk/Source/_javascript_Core/runtime/TypeLocationCache.h) (0 => 229893)


--- trunk/Source/WTF/wtf/StdMap.h	                        (rev 0)
+++ trunk/Source/WTF/wtf/StdMap.h	2018-03-23 12:34:08 UTC (rev 229893)
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2018 Yusuke Suzuki <utatane....@gmail.com>.
+ *
+ * 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. ``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
+ * 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.
+ */
+
+#pragma once
+
+#include <map>
+#include <wtf/FastMalloc.h>
+
+namespace WTF {
+
+template<typename Key, typename Value, typename Compare = std::less<Key>, typename Allocator = FastAllocator<std::pair<const Key, Value>>>
+using StdMap = std::map<Key, Value, Compare, Allocator>;
+
+} // namespace WTF
+
+using WTF::StdMap;

Copied: trunk/Source/WTF/wtf/StdSet.h (from rev 229892, trunk/Source/_javascript_Core/runtime/TypeLocationCache.h) (0 => 229893)


--- trunk/Source/WTF/wtf/StdSet.h	                        (rev 0)
+++ trunk/Source/WTF/wtf/StdSet.h	2018-03-23 12:34:08 UTC (rev 229893)
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2018 Yusuke Suzuki <utatane....@gmail.com>.
+ *
+ * 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. ``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
+ * 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.
+ */
+
+#pragma once
+
+#include <set>
+#include <wtf/FastMalloc.h>
+
+namespace WTF {
+
+template<typename Key, typename Compare = std::less<Key>, typename Allocator = FastAllocator<Key>>
+using StdSet = std::set<Key, Compare, Allocator>;
+
+} // namespace WTF
+
+using WTF::StdSet;

Copied: trunk/Source/WTF/wtf/StdUnorderedMap.h (from rev 229892, trunk/Source/_javascript_Core/runtime/TypeLocationCache.h) (0 => 229893)


--- trunk/Source/WTF/wtf/StdUnorderedMap.h	                        (rev 0)
+++ trunk/Source/WTF/wtf/StdUnorderedMap.h	2018-03-23 12:34:08 UTC (rev 229893)
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2018 Yusuke Suzuki <utatane....@gmail.com>.
+ *
+ * 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. ``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
+ * 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.
+ */
+
+#pragma once
+
+#include <unordered_map>
+#include <wtf/FastMalloc.h>
+
+namespace WTF {
+
+template<typename Key, typename Value, typename Hash = std::hash<Key>, typename Predicate = std::equal_to<Key>, typename Allocator = FastAllocator<std::pair<const Key, Value>>>
+using StdUnorderedMap = std::unordered_map<Key, Value, Hash, Predicate, Allocator>;
+
+} // namespace WTF
+
+using WTF::StdUnorderedMap;

Copied: trunk/Source/WTF/wtf/StdUnorderedSet.h (from rev 229892, trunk/Source/_javascript_Core/runtime/TypeLocationCache.h) (0 => 229893)


--- trunk/Source/WTF/wtf/StdUnorderedSet.h	                        (rev 0)
+++ trunk/Source/WTF/wtf/StdUnorderedSet.h	2018-03-23 12:34:08 UTC (rev 229893)
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2018 Yusuke Suzuki <utatane....@gmail.com>.
+ *
+ * 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. ``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
+ * 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.
+ */
+
+#pragma once
+
+#include <unordered_set>
+#include <wtf/FastMalloc.h>
+
+namespace WTF {
+
+template<typename Key, typename Hash = std::hash<Key>, typename Predicate = std::equal_to<Key>, typename Allocator = FastAllocator<Key>>
+using StdUnorderedSet = std::unordered_set<Key, Hash, Predicate, Allocator>;
+
+} // namespace WTF
+
+using WTF::StdUnorderedSet;

Modified: trunk/Source/WebCore/ChangeLog (229892 => 229893)


--- trunk/Source/WebCore/ChangeLog	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/WebCore/ChangeLog	2018-03-23 12:34:08 UTC (rev 229893)
@@ -1,3 +1,28 @@
+2018-03-23  Yusuke Suzuki  <utatane....@gmail.com>
+
+        [WTF] Add standard containers with FastAllocator specialization
+        https://bugs.webkit.org/show_bug.cgi?id=183789
+
+        Reviewed by Darin Adler.
+
+        * Modules/indexeddb/IDBKeyData.h:
+        * Modules/mediasource/SampleMap.h:
+        * Modules/mediasource/SourceBuffer.cpp:
+        * Modules/webauthn/cbor/CBORValue.h:
+        It did not use FastAllocator for its container.
+
+        * page/WheelEventTestTrigger.h:
+        * platform/audio/PlatformMediaSessionManager.h:
+        * platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h:
+        * platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
+        * platform/graphics/cv/VideoTextureCopierCV.cpp:
+        (WebCore::YCbCrToRGBMatrixForRangeAndTransferFunction):
+        * platform/mock/mediasource/MockSourceBufferPrivate.cpp:
+        * platform/wpe/PlatformPasteboardWPE.cpp:
+        * rendering/OrderIterator.h:
+
 2018-03-23  Antoine Quint  <grao...@apple.com>
 
         [Web Animations] infinite repeat counts aren't reflected for CSS Animations

Modified: trunk/Source/WebCore/Modules/indexeddb/IDBKeyData.h (229892 => 229893)


--- trunk/Source/WebCore/Modules/indexeddb/IDBKeyData.h	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBKeyData.h	2018-03-23 12:34:08 UTC (rev 229893)
@@ -28,7 +28,7 @@
 #if ENABLE(INDEXED_DATABASE)
 
 #include "IDBKey.h"
-#include <set>
+#include <wtf/StdSet.h>
 #include <wtf/Variant.h>
 #include <wtf/text/StringHash.h>
 
@@ -302,7 +302,7 @@
     return WTFMove(keyData);
 }
 
-using IDBKeyDataSet = std::set<IDBKeyData, std::less<IDBKeyData>, FastAllocator<IDBKeyData>>;
+using IDBKeyDataSet = StdSet<IDBKeyData>;
 
 } // namespace WebCore
 

Modified: trunk/Source/WebCore/Modules/mediasource/SampleMap.h (229892 => 229893)


--- trunk/Source/WebCore/Modules/mediasource/SampleMap.h	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/WebCore/Modules/mediasource/SampleMap.h	2018-03-23 12:34:08 UTC (rev 229893)
@@ -25,9 +25,9 @@
 
 #pragma once
 
-#include <map>
 #include <wtf/MediaTime.h>
 #include <wtf/RefPtr.h>
+#include <wtf/StdMap.h>
 
 namespace WebCore {
 
@@ -37,7 +37,7 @@
 class PresentationOrderSampleMap {
     friend class SampleMap;
 public:
-    using MapType = std::map<MediaTime, RefPtr<MediaSample>, std::less<MediaTime>, FastAllocator<std::pair<const MediaTime, RefPtr<MediaSample>>>>;
+    using MapType = StdMap<MediaTime, RefPtr<MediaSample>>;
     typedef MapType::iterator iterator;
     typedef MapType::const_iterator const_iterator;
     typedef MapType::reverse_iterator reverse_iterator;
@@ -72,7 +72,7 @@
     friend class SampleMap;
 public:
     typedef std::pair<MediaTime, MediaTime> KeyType;
-    using MapType = std::map<KeyType, RefPtr<MediaSample>, std::less<KeyType>, FastAllocator<std::pair<const KeyType, RefPtr<MediaSample>>>>;
+    using MapType = StdMap<KeyType, RefPtr<MediaSample>>;
     typedef MapType::iterator iterator;
     typedef MapType::const_iterator const_iterator;
     typedef MapType::reverse_iterator reverse_iterator;

Modified: trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp (229892 => 229893)


--- trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp	2018-03-23 12:34:08 UTC (rev 229893)
@@ -55,7 +55,6 @@
 #include <_javascript_Core/JSLock.h>
 #include <_javascript_Core/VM.h>
 #include <limits>
-#include <map>
 
 namespace WebCore {
 

Modified: trunk/Source/WebCore/Modules/webauthn/cbor/CBORValue.h (229892 => 229893)


--- trunk/Source/WebCore/Modules/webauthn/cbor/CBORValue.h	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/WebCore/Modules/webauthn/cbor/CBORValue.h	2018-03-23 12:34:08 UTC (rev 229893)
@@ -29,9 +29,9 @@
 
 #pragma once
 
-#include <map>
 #include <stdint.h>
 #include <wtf/Noncopyable.h>
+#include <wtf/StdMap.h>
 #include <wtf/Vector.h>
 #include <wtf/text/WTFString.h>
 
@@ -94,7 +94,7 @@
 
     using BinaryValue = Vector<uint8_t>;
     using ArrayValue = Vector<CBORValue>;
-    using MapValue = std::map<CBORValue, CBORValue, CTAPLess>;
+    using MapValue = StdMap<CBORValue, CBORValue, CTAPLess>;
 
     enum class Type {
         Unsigned = 0,

Modified: trunk/Source/WebCore/page/WheelEventTestTrigger.h (229892 => 229893)


--- trunk/Source/WebCore/page/WheelEventTestTrigger.h	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/WebCore/page/WheelEventTestTrigger.h	2018-03-23 12:34:08 UTC (rev 229893)
@@ -29,11 +29,11 @@
 #pragma once
 
 #include <functional>
-#include <set>
 #include <wtf/Function.h>
 #include <wtf/HashMap.h>
 #include <wtf/Lock.h>
 #include <wtf/RunLoop.h>
+#include <wtf/StdSet.h>
 #include <wtf/ThreadSafeRefCounted.h>
 
 namespace WebCore {
@@ -52,7 +52,7 @@
         ScrollingThreadSyncNeeded,
         ContentScrollInProgress
     };
-    using DeferTestTriggerReasonSet = std::set<DeferTestTriggerReason, std::less<DeferTestTriggerReason>, FastAllocator<DeferTestTriggerReason>>;
+    using DeferTestTriggerReasonSet = StdSet<DeferTestTriggerReason>;
     typedef const void* ScrollableAreaIdentifier;
     void WEBCORE_EXPORT deferTestsForReason(ScrollableAreaIdentifier, DeferTestTriggerReason);
     void WEBCORE_EXPORT removeTestDeferralForReason(ScrollableAreaIdentifier, DeferTestTriggerReason);

Modified: trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.h (229892 => 229893)


--- trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.h	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.h	2018-03-23 12:34:08 UTC (rev 229893)
@@ -29,7 +29,6 @@
 #include "AudioHardwareListener.h"
 #include "PlatformMediaSession.h"
 #include "RemoteCommandListener.h"
-#include <map>
 #include <pal/system/SystemSleepListener.h>
 #include <wtf/Vector.h>
 

Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h (229892 => 229893)


--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h	2018-03-23 12:34:08 UTC (rev 229893)
@@ -29,7 +29,6 @@
 
 #include "ImageDecoder.h"
 #include "SampleMap.h"
-#include <map>
 #include <wtf/Lock.h>
 #include <wtf/Vector.h>
 #include <wtf/text/WTFString.h>

Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm (229892 => 229893)


--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm	2018-03-23 12:34:08 UTC (rev 229893)
@@ -47,7 +47,6 @@
 #import <AVFoundation/AVAssetTrack.h>
 #import <AVFoundation/AVTime.h>
 #import <VideoToolbox/VTUtilities.h>
-#import <map>
 #import <pal/avfoundation/MediaTimeAVFoundation.h>
 #import <wtf/MainThread.h>
 #import <wtf/MediaTime.h>

Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm (229892 => 229893)


--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm	2018-03-23 12:34:08 UTC (rev 229893)
@@ -73,7 +73,6 @@
 #import <_javascript_Core/Uint32Array.h>
 #import <_javascript_Core/Uint8Array.h>
 #import <functional>
-#import <map>
 #import <objc/runtime.h>
 #import <pal/avfoundation/MediaTimeAVFoundation.h>
 #import <pal/spi/cocoa/QuartzCoreSPI.h>

Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm (229892 => 229893)


--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm	2018-03-23 12:34:08 UTC (rev 229893)
@@ -49,7 +49,6 @@
 #import <AVFoundation/AVAssetTrack.h>
 #import <_javascript_Core/TypedArrayInlines.h>
 #import <QuartzCore/CALayer.h>
-#import <map>
 #import <objc/runtime.h>
 #import <pal/avfoundation/MediaTimeAVFoundation.h>
 #import <pal/spi/mac/AVFoundationSPI.h>

Modified: trunk/Source/WebCore/platform/graphics/cv/VideoTextureCopierCV.cpp (229892 => 229893)


--- trunk/Source/WebCore/platform/graphics/cv/VideoTextureCopierCV.cpp	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/WebCore/platform/graphics/cv/VideoTextureCopierCV.cpp	2018-03-23 12:34:08 UTC (rev 229893)
@@ -33,6 +33,7 @@
 #include "TextureCacheCV.h"
 #include <pal/spi/cocoa/IOSurfaceSPI.h>
 #include <wtf/NeverDestroyed.h>
+#include <wtf/StdMap.h>
 #include <wtf/text/StringBuilder.h>
 
 #if USE(OPENGL_ES)
@@ -248,7 +249,7 @@
 static const Vector<GLfloat> YCbCrToRGBMatrixForRangeAndTransferFunction(PixelRange range, TransferFunction transferFunction)
 {
     using MapKey = std::pair<PixelRange, TransferFunction>;
-    using MatrixMap = std::map<MapKey, Vector<GLfloat>>;
+    using MatrixMap = StdMap<MapKey, Vector<GLfloat>>;
 
     static NeverDestroyed<MatrixMap> matrices;
     static dispatch_once_t onceToken;
@@ -393,7 +394,7 @@
 }
 
 #if !LOG_DISABLED
-using StringMap = std::map<uint32_t, const char*, std::less<uint32_t>, FastAllocator<std::pair<const uint32_t, const char*>>>;
+using StringMap = StdMap<uint32_t, const char*>;
 #define STRINGIFY_PAIR(e) e, #e
 static StringMap& enumToStringMap()
 {

Modified: trunk/Source/WebCore/platform/mock/mediasource/MockSourceBufferPrivate.cpp (229892 => 229893)


--- trunk/Source/WebCore/platform/mock/mediasource/MockSourceBufferPrivate.cpp	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/WebCore/platform/mock/mediasource/MockSourceBufferPrivate.cpp	2018-03-23 12:34:08 UTC (rev 229893)
@@ -37,7 +37,6 @@
 #include "MockTracks.h"
 #include "SourceBufferPrivateClient.h"
 #include <_javascript_Core/ArrayBuffer.h>
-#include <map>
 #include <wtf/StringPrintStream.h>
 
 namespace WebCore {

Modified: trunk/Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp (229892 => 229893)


--- trunk/Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp	2018-03-23 12:34:08 UTC (rev 229893)
@@ -27,7 +27,6 @@
 #include "PlatformPasteboard.h"
 
 #include "Pasteboard.h"
-#include <map>
 #include <wpe/pasteboard.h>
 #include <wtf/Assertions.h>
 #include <wtf/text/WTFString.h>

Modified: trunk/Source/WebCore/rendering/OrderIterator.h (229892 => 229893)


--- trunk/Source/WebCore/rendering/OrderIterator.h	2018-03-23 12:32:40 UTC (rev 229892)
+++ trunk/Source/WebCore/rendering/OrderIterator.h	2018-03-23 12:34:08 UTC (rev 229893)
@@ -31,7 +31,7 @@
 
 #pragma once
 
-#include <set>
+#include <wtf/StdSet.h>
 
 namespace WebCore {
 
@@ -56,7 +56,7 @@
     RenderBox& m_containerBox;
     RenderBox* m_currentChild;
 
-    using OrderValues = std::set<int, std::less<int>, FastAllocator<int>>;
+    using OrderValues = StdSet<int>;
     OrderValues m_orderValues;
     OrderValues::const_iterator m_orderValuesIterator;
     bool m_isReset { false };
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to