Changeset 161114 in webkit
- Timestamp:
- Dec 28, 2013 1:20:57 PM (10 years ago)
- Location:
- trunk/Source
- Files:
-
- 11 edited
- 2 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WTF/ChangeLog
r161106 r161114 1 2013-12-26 Sam Weinig <sam@webkit.org> 2 3 Move FilterIterator and IteratorPair to WTF and reimplement HashMap::keys() and HashMap::values() using IteratorPair 4 https://bugs.webkit.org/show_bug.cgi?id=126253 5 6 Reviewed by Anders Carlsson. 7 8 * GNUmakefile.list.am: 9 * WTF.vcxproj/WTF.vcxproj: 10 * WTF.vcxproj/WTF.vcxproj.filters: 11 * WTF.xcodeproj/project.pbxproj: 12 * wtf/CMakeLists.txt: 13 Add new files. 14 15 * wtf/HashMap.h: 16 * wtf/RefPtrHashMap.h: 17 Remove the old implementation of keys() and values() and replace it with one 18 that uses IteratorPair. 19 20 * wtf/FilterIterator.h: Copied from Source/WebKit2/Shared/FilterIterator.h. 21 * wtf/IteratorPair.h: Copied from Source/WebKit2/Shared/IteratorPair.h. 22 1 23 2013-12-27 Daniel Bates <dabates@apple.com> 2 24 -
trunk/Source/WTF/GNUmakefile.list.am
r160687 r161114 54 54 Source/WTF/wtf/FilePrintStream.cpp \ 55 55 Source/WTF/wtf/FilePrintStream.h \ 56 Source/WTF/wtf/FilterIterator.h \ 56 57 Source/WTF/wtf/FlipBytes.h \ 57 58 Source/WTF/wtf/Forward.h \ … … 73 74 Source/WTF/wtf/InlineASM.h \ 74 75 Source/WTF/wtf/Insertion.h \ 76 Source/WTF/wtf/IteratorPair.h \ 75 77 Source/WTF/wtf/ListDump.h \ 76 78 Source/WTF/wtf/ListHashSet.h \ -
trunk/Source/WTF/WTF.vcxproj/WTF.vcxproj
r160798 r161114 198 198 <ClInclude Include="..\wtf\FeatureDefines.h" /> 199 199 <ClInclude Include="..\wtf\FilePrintStream.h" /> 200 <ClInclude Include="..\wtf\FilterIterator.h" /> 200 201 <ClInclude Include="..\wtf\FlipBytes.h" /> 201 202 <ClInclude Include="..\wtf\Forward.h" /> … … 217 218 <ClInclude Include="..\wtf\HashTraits.h" /> 218 219 <ClInclude Include="..\wtf\HexNumber.h" /> 220 <ClInclude Include="..\wtf\IteratorPair.h" /> 219 221 <ClInclude Include="..\wtf\ListHashSet.h" /> 220 222 <ClInclude Include="..\wtf\Locker.h" /> -
trunk/Source/WTF/WTF.vcxproj/WTF.vcxproj.filters
r160687 r161114 433 433 <Filter>wtf</Filter> 434 434 </ClInclude> 435 <ClInclude Include="..\wtf\FilterIterator.h"> 436 <Filter>wtf</Filter> 437 </ClInclude> 435 438 <ClInclude Include="..\wtf\Forward.h"> 436 439 <Filter>wtf</Filter> … … 467 470 </ClInclude> 468 471 <ClInclude Include="..\wtf\HexNumber.h"> 472 <Filter>wtf</Filter> 473 </ClInclude> 474 <ClInclude Include="..\wtf\IteratorPair.h"> 469 475 <Filter>wtf</Filter> 470 476 </ClInclude> -
trunk/Source/WTF/WTF.xcodeproj/project.pbxproj
r160687 r161114 65 65 2CDED0F318115C85004DBA70 /* RunLoop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2CDED0F118115C85004DBA70 /* RunLoop.cpp */; }; 66 66 2CDED0F418115C85004DBA70 /* RunLoop.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CDED0F218115C85004DBA70 /* RunLoop.h */; }; 67 7CDD7FF8186D291E007433CD /* FilterIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CDD7FF7186D291E007433CD /* FilterIterator.h */; }; 68 7CDD7FFA186D2A54007433CD /* IteratorPair.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CDD7FF9186D2A54007433CD /* IteratorPair.h */; }; 67 69 7E29C33E15FFD79B00516D61 /* ObjcRuntimeExtras.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E29C33D15FFD79B00516D61 /* ObjcRuntimeExtras.h */; }; 68 70 8134013815B092FD001FF0B8 /* Base64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8134013615B092FD001FF0B8 /* Base64.cpp */; }; … … 336 338 5D247B7314689C4700E78B76 /* WTF.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = WTF.xcconfig; sourceTree = "<group>"; }; 337 339 6541CAF41630DB26006D0DEC /* CopyWTFHeaders.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = CopyWTFHeaders.xcconfig; sourceTree = "<group>"; }; 340 7CDD7FF7186D291E007433CD /* FilterIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FilterIterator.h; sourceTree = "<group>"; }; 341 7CDD7FF9186D2A54007433CD /* IteratorPair.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IteratorPair.h; sourceTree = "<group>"; }; 338 342 7E29C33D15FFD79B00516D61 /* ObjcRuntimeExtras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjcRuntimeExtras.h; sourceTree = "<group>"; }; 339 343 8134013615B092FD001FF0B8 /* Base64.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Base64.cpp; sourceTree = "<group>"; }; … … 695 699 A8A472A2151A825A004123FF /* FastMalloc.h */, 696 700 B38FD7BC168953E80065C969 /* FeatureDefines.h */, 701 7CDD7FF7186D291E007433CD /* FilterIterator.h */, 702 7CDD7FF9186D2A54007433CD /* IteratorPair.h */, 697 703 0F9D335B165DBA73005AD387 /* FilePrintStream.cpp */, 698 704 0F9D335C165DBA73005AD387 /* FilePrintStream.h */, … … 950 956 A8A47388151A825B004123FF /* Atomics.h in Headers */, 951 957 A8A47436151A825B004123FF /* AtomicString.h in Headers */, 958 7CDD7FF8186D291E007433CD /* FilterIterator.h in Headers */, 952 959 A8A47437151A825B004123FF /* AtomicStringHash.h in Headers */, 953 960 A8A47438151A825B004123FF /* AtomicStringImpl.h in Headers */, … … 958 965 A8A473A9151A825B004123FF /* bignum-dtoa.h in Headers */, 959 966 A8A473AB151A825B004123FF /* bignum.h in Headers */, 967 7CDD7FFA186D2A54007433CD /* IteratorPair.h in Headers */, 960 968 A8A47452151A825B004123FF /* BinarySemaphore.h in Headers */, 961 969 A8A4738A151A825B004123FF /* Bitmap.h in Headers */, -
trunk/Source/WTF/wtf/CMakeLists.txt
r160492 r161114 29 29 FeatureDefines.h 30 30 FilePrintStream.h 31 FilterIterator.h 31 32 FlipBytes.h 32 33 Forward.h … … 43 44 HashTraits.h 44 45 HexNumber.h 46 IteratorPair.h 45 47 ListHashSet.h 46 48 Locker.h -
trunk/Source/WTF/wtf/FilterIterator.h
r161071 r161114 24 24 */ 25 25 26 #ifndef FilterIterator_h27 #define FilterIterator_h26 #ifndef WTF_FilterIterator_h 27 #define WTF_FilterIterator_h 28 28 29 #include "APIObject.h"30 29 #include <wtf/Forward.h> 31 30 #include <wtf/PassRefPtr.h> 32 31 #include <wtf/Vector.h> 33 32 34 namespace API{33 namespace WTF { 35 34 36 35 template<typename Predicate, typename Cast, typename Iterator> … … 74 73 }; 75 74 76 } // namespace API75 } // namespace WTF 77 76 78 #endif // FilterIterator_h77 #endif // WTF_FilterIterator_h -
trunk/Source/WTF/wtf/HashMap.h
r160400 r161114 23 23 24 24 #include <wtf/HashTable.h> 25 #include <wtf/IteratorPair.h> 25 26 26 27 namespace WTF { … … 92 93 const_iterator end() const; 93 94 94 HashMapKeysProxy& keys() { return static_cast<HashMapKeysProxy&>(*this); }95 const HashMapKeysProxy& keys() const { return static_cast<const HashMapKeysProxy&>(*this); }96 97 HashMapValuesProxy& values() { return static_cast<HashMapValuesProxy&>(*this); }98 const HashMapValuesProxy& values() const { return static_cast<const HashMapValuesProxy&>(*this); }95 IteratorPair<typename iterator::Keys> keys() { return IteratorPair<typename iterator::Keys>(begin().keys(), end().keys()); } 96 const IteratorPair<typename const_iterator::Keys> keys() const { return IteratorPair<typename const_iterator::Keys>(begin().keys(), end().keys()); } 97 98 IteratorPair<typename iterator::Values> values() { return IteratorPair<typename iterator::Values>(begin().values(), end().values()); } 99 const IteratorPair<typename const_iterator::Values> values() const { return IteratorPair<typename const_iterator::Values>(begin().values(), end().values()); } 99 100 100 101 iterator find(const KeyType&); … … 150 151 151 152 HashTableType m_impl; 152 };153 154 template<typename KeyArg, typename MappedArg, typename HashArg, typename KeyTraitsArg, typename MappedTraitsArg>155 class HashMap<KeyArg, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg>::HashMapKeysProxy :156 private HashMap<KeyArg, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg> {157 public:158 typedef HashMap<KeyArg, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg> HashMapType;159 typedef typename HashMapType::iterator::Keys iterator;160 typedef typename HashMapType::const_iterator::Keys const_iterator;161 162 iterator begin()163 {164 return HashMapType::begin().keys();165 }166 167 iterator end()168 {169 return HashMapType::end().keys();170 }171 172 const_iterator begin() const173 {174 return HashMapType::begin().keys();175 }176 177 const_iterator end() const178 {179 return HashMapType::end().keys();180 }181 182 private:183 friend class HashMap;184 185 HashMapKeysProxy() WTF_DELETED_FUNCTION;186 HashMapKeysProxy(const HashMapKeysProxy&) WTF_DELETED_FUNCTION;187 HashMapKeysProxy& operator=(const HashMapKeysProxy&) WTF_DELETED_FUNCTION;188 ~HashMapKeysProxy() WTF_DELETED_FUNCTION;189 };190 191 template<typename KeyArg, typename MappedArg, typename HashArg, typename KeyTraitsArg, typename MappedTraitsArg>192 class HashMap<KeyArg, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg>::HashMapValuesProxy :193 private HashMap<KeyArg, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg> {194 public:195 typedef HashMap<KeyArg, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg> HashMapType;196 typedef typename HashMapType::iterator::Values iterator;197 typedef typename HashMapType::const_iterator::Values const_iterator;198 199 iterator begin()200 {201 return HashMapType::begin().values();202 }203 204 iterator end()205 {206 return HashMapType::end().values();207 }208 209 const_iterator begin() const210 {211 return HashMapType::begin().values();212 }213 214 const_iterator end() const215 {216 return HashMapType::end().values();217 }218 219 private:220 friend class HashMap;221 222 // These are intentionally not implemented.223 HashMapValuesProxy() WTF_DELETED_FUNCTION;224 HashMapValuesProxy(const HashMapValuesProxy&) WTF_DELETED_FUNCTION;225 HashMapValuesProxy& operator=(const HashMapValuesProxy&) WTF_DELETED_FUNCTION;226 ~HashMapValuesProxy() WTF_DELETED_FUNCTION;227 153 }; 228 154 -
trunk/Source/WTF/wtf/IteratorPair.h
r161071 r161114 24 24 */ 25 25 26 template<typename Iterator> class IteratorPair { 26 #ifndef WTF_IteratorPair_h 27 #define WTF_IteratorPair_h 28 29 namespace WTF { 30 31 template<typename Iterator> 32 class IteratorPair { 27 33 public: 28 34 IteratorPair(Iterator begin, Iterator end) … … 35 41 Iterator end() { return m_end; } 36 42 43 Iterator begin() const { return m_begin; } 44 Iterator end() const { return m_end; } 45 37 46 private: 38 Iterator m_begin, m_end; 47 Iterator m_begin; 48 Iterator m_end; 39 49 }; 50 51 } // namespace WTF 52 53 #endif // WTF_IteratorPair -
trunk/Source/WTF/wtf/RefPtrHashMap.h
r157049 r161114 71 71 const_iterator end() const; 72 72 73 IteratorPair<typename iterator::Keys> keys() { return IteratorPair<typename iterator::Keys>(begin().keys(), end().keys()); } 74 const IteratorPair<typename const_iterator::Keys> keys() const { return IteratorPair<typename const_iterator::Keys>(begin().keys(), end().keys()); } 75 76 IteratorPair<typename iterator::Values> values() { return IteratorPair<typename iterator::Values>(begin().values(), end().values()); } 77 const IteratorPair<typename const_iterator::Values> values() const { return IteratorPair<typename const_iterator::Values>(begin().values(), end().values()); } 78 73 79 iterator find(const KeyType&); 74 80 iterator find(RawKeyType); -
trunk/Source/WebKit2/ChangeLog
r161112 r161114 1 2013-12-26 Sam Weinig <sam@webkit.org> 2 3 Move FilterIterator and IteratorPair to WTF and reimplement HashMap::keys() and HashMap::values() using IteratorPair 4 https://bugs.webkit.org/show_bug.cgi?id=126253 5 6 Reviewed by Anders Carlsson. 7 8 * Shared/APIArray.h: 9 Update includes and make elementsOfType() a bit easier to read by using a typedef and some 10 judicial indentation. 11 12 * Shared/FilterIterator.h: Moved to WTF. 13 * Shared/IteratorPair.h: Moved to WTF. 14 15 * WebKit2.xcodeproj/project.pbxproj: 16 Remove the two files. 17 1 18 2013-12-28 Kwang Yul Seo <skyul@company100.net> 2 19 -
trunk/Source/WebKit2/Shared/APIArray.h
r160608 r161114 28 28 29 29 #include "APIObject.h" 30 #include "FilterIterator.h" 31 #include "IteratorPair.h" 30 #include <wtf/FilterIterator.h> 32 31 #include <wtf/Forward.h> 32 #include <wtf/IteratorPair.h> 33 33 #include <wtf/PassRefPtr.h> 34 34 #include <wtf/Vector.h> … … 67 67 68 68 template<typename T> 69 IteratorPair<FilterIterator<decltype(&isType<T>), decltype(&getObject<T>), Vector<RefPtr<Object>>::const_iterator>> elementsOfType()69 WTF::IteratorPair<WTF::FilterIterator<decltype(&isType<T>), decltype(&getObject<T>), Vector<RefPtr<Object>>::const_iterator>> elementsOfType() 70 70 { 71 return IteratorPair<FilterIterator<decltype(&isType<T>), decltype(&getObject<T>), Vector<RefPtr<Object>>::const_iterator>>(FilterIterator<decltype(&isType<T>), decltype(&getObject<T>), Vector<RefPtr<Object>>::const_iterator>(isType<T>, getObject<T>, m_elements.begin(), m_elements.end()), FilterIterator<decltype(&isType<T>), decltype(&getObject<T>), Vector<RefPtr<Object>>::const_iterator>(isType<T>, getObject<T>, m_elements.end(), m_elements.end())); 71 typedef WTF::FilterIterator<decltype(&isType<T>), decltype(&getObject<T>), Vector<RefPtr<Object>>::const_iterator> Iterator; 72 73 return WTF::IteratorPair<Iterator>( 74 Iterator(isType<T>, getObject<T>, m_elements.begin(), m_elements.end()), 75 Iterator(isType<T>, getObject<T>, m_elements.end(), m_elements.end()) 76 ); 72 77 } 73 78 -
trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
r160971 r161114 735 735 728E86F11795188C0087879E /* WebColorPickerMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 728E86EF1795188C0087879E /* WebColorPickerMac.h */; }; 736 736 728E86F21795188C0087879E /* WebColorPickerMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 728E86F01795188C0087879E /* WebColorPickerMac.mm */; }; 737 752A8077183D6DA7003D659E /* FilterIterator.h in Copy Files */ = {isa = PBXBuildFile; fileRef = 752A8076183D6DA7003D659E /* FilterIterator.h */; };738 737 755422BB18062B9C0046F6A8 /* WKOriginDataManager.cpp in Copy Files */ = {isa = PBXBuildFile; fileRef = 755422B918062B9C0046F6A8 /* WKOriginDataManager.cpp */; }; 739 738 755422BC18062B9C0046F6A8 /* WKOriginDataManager.h in Copy Files */ = {isa = PBXBuildFile; fileRef = 755422BA18062B9C0046F6A8 /* WKOriginDataManager.h */; }; … … 743 742 755422CB180650020046F6A8 /* WebOriginDataManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 755422C618064FFC0046F6A8 /* WebOriginDataManager.cpp */; }; 744 743 755422CC180773CE0046F6A8 /* WebOriginDataManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 755422C718064FFC0046F6A8 /* WebOriginDataManager.h */; }; 745 757AF978184D131400E6316E /* IteratorPair.h in Headers */ = {isa = PBXBuildFile; fileRef = 757AF976184D130500E6316E /* IteratorPair.h */; };746 744 759CCD581808F1640078E8A8 /* WebOriginDataManagerProxyChangeClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 759CCD541808F1600078E8A8 /* WebOriginDataManagerProxyChangeClient.cpp */; }; 747 745 759CCD591808F1690078E8A8 /* WebOriginDataManagerProxyChangeClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 759CCD551808F1600078E8A8 /* WebOriginDataManagerProxyChangeClient.h */; }; … … 1516 1514 755422C318062BE40046F6A8 /* WebOriginDataManagerProxy.messages.in in Copy Files */, 1517 1515 1A50DB66110A3D57000D3FE5 /* WebProcess.app in Copy Files */, 1518 752A8077183D6DA7003D659E /* FilterIterator.h in Copy Files */,1519 1516 755422BB18062B9C0046F6A8 /* WKOriginDataManager.cpp in Copy Files */, 1520 1517 ); … … 2355 2352 728E86EF1795188C0087879E /* WebColorPickerMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebColorPickerMac.h; sourceTree = "<group>"; }; 2356 2353 728E86F01795188C0087879E /* WebColorPickerMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebColorPickerMac.mm; sourceTree = "<group>"; }; 2357 752A8076183D6DA7003D659E /* FilterIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FilterIterator.h; sourceTree = "<group>"; };2358 2354 755422B918062B9C0046F6A8 /* WKOriginDataManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKOriginDataManager.cpp; sourceTree = "<group>"; }; 2359 2355 755422BA18062B9C0046F6A8 /* WKOriginDataManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKOriginDataManager.h; sourceTree = "<group>"; }; … … 2364 2360 755422C718064FFC0046F6A8 /* WebOriginDataManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebOriginDataManager.h; path = OriginData/WebOriginDataManager.h; sourceTree = "<group>"; }; 2365 2361 755422C818064FFC0046F6A8 /* WebOriginDataManager.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = WebOriginDataManager.messages.in; path = OriginData/WebOriginDataManager.messages.in; sourceTree = "<group>"; }; 2366 757AF976184D130500E6316E /* IteratorPair.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IteratorPair.h; sourceTree = "<group>"; };2367 2362 759CCD541808F1600078E8A8 /* WebOriginDataManagerProxyChangeClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebOriginDataManagerProxyChangeClient.cpp; sourceTree = "<group>"; }; 2368 2363 759CCD551808F1600078E8A8 /* WebOriginDataManagerProxyChangeClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebOriginDataManagerProxyChangeClient.h; sourceTree = "<group>"; }; … … 3543 3538 8CFECE931490F140002AAA32 /* EditorState.cpp */, 3544 3539 1AA41AB412C02EC4002BE67B /* EditorState.h */, 3545 752A8076183D6DA7003D659E /* FilterIterator.h */,3546 3540 BCE81D8A1319F7EF00241910 /* FontInfo.cpp */, 3547 3541 BCE81D8B1319F7EF00241910 /* FontInfo.h */, … … 3551 3545 BCBCB0CC1215E33A00DE59CA /* ImmutableDictionary.cpp */, 3552 3546 BCBCB0CA1215E32100DE59CA /* ImmutableDictionary.h */, 3553 757AF976184D130500E6316E /* IteratorPair.h */,3554 3547 1A92DC1012F8BA460017AF65 /* LayerTreeContext.h */, 3555 3548 BCB0AEE8122F53E300B1341E /* MutableDictionary.cpp */, … … 5972 5965 E179088F169BAA6A006904C7 /* SecItemShim.h in Headers */, 5973 5966 511F8A7B138B460900A95F44 /* SecItemShimLibrary.h in Headers */, 5974 757AF978184D131400E6316E /* IteratorPair.h in Headers */,5975 5967 E1790891169BAA82006904C7 /* SecItemShimMessages.h in Headers */, 5976 5968 1FB00AC7185F76460019142E /* WKWebProcessPlugInPageGroup.h in Headers */,
Note: See TracChangeset
for help on using the changeset viewer.