Changeset 190572 in webkit
- Timestamp:
- Oct 5, 2015 1:31:41 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r190568 r190572 1 2015-10-05 Myles C. Maxfield <mmaxfield@apple.com> 2 3 Allow WKRetainPtrs to be used as keys in hashing data structures 4 https://bugs.webkit.org/show_bug.cgi?id=149762 5 6 Reviewed by Anders Carlsson. 7 8 Use RefPtr as a model. 9 10 * UIProcess/API/cpp/WKRetainPtr.h: 11 (WebKit::WKRetainPtr::WKRetainPtr): 12 (WebKit::WKRetainPtr::isHashTableDeletedValue): 13 (WebKit::WKRetainPtr::hashTableDeletedValue): 14 (WTF::HashTraits<WKRetainPtr<P>>::emptyValue): 15 (WTF::HashTraits<WKRetainPtr<P>>::peek): 16 1 17 2015-10-05 Enrica Casucci <enrica@apple.com> 2 18 -
trunk/Source/WebKit2/UIProcess/API/cpp/WKRetainPtr.h
r168541 r190572 29 29 #include <WebKit/WKType.h> 30 30 #include <algorithm> 31 #include <wtf/HashFunctions.h> 32 #include <wtf/HashTraits.h> 33 #include <wtf/RefPtr.h> 31 34 32 35 namespace WebKit { … … 84 87 WKRelease(ptr); 85 88 } 89 90 // Hash table deleted values, which are only constructed and never copied or destroyed. 91 WKRetainPtr(WTF::HashTableDeletedValueType) 92 : m_ptr(hashTableDeletedValue()) 93 { 94 } 95 96 bool isHashTableDeletedValue() const { return m_ptr == hashTableDeletedValue(); } 97 constexpr static T hashTableDeletedValue() { return reinterpret_cast<T>(-1); } 86 98 87 99 PtrType get() const { return m_ptr; } … … 251 263 using WebKit::adoptWK; 252 264 265 namespace WTF { 266 267 template <typename T> struct IsSmartPtr<WKRetainPtr<T>> { 268 static const bool value = true; 269 }; 270 271 template<typename P> struct DefaultHash<WKRetainPtr<P>> { 272 typedef PtrHash<WKRetainPtr<P>> Hash; 273 }; 274 275 template<typename P> struct HashTraits<WKRetainPtr<P>> : SimpleClassHashTraits<WKRetainPtr<P>> { 276 static P emptyValue() { return nullptr; } 277 278 typedef P PeekType; 279 static PeekType peek(const WKRetainPtr<P>& value) { return value.get(); } 280 static PeekType peek(P value) { return value; } 281 }; 282 283 } // namespace WTF 284 253 285 #endif // WKRetainPtr_h -
trunk/Tools/ChangeLog
r190565 r190572 1 2015-10-05 Myles C. Maxfield <mmaxfield@apple.com> 2 3 Allow WKRetainPtrs to be used as keys in hashing data structures 4 https://bugs.webkit.org/show_bug.cgi?id=149762 5 6 Reviewed by Anders Carlsson. 7 8 * TestWebKitAPI/PlatformGTK.cmake: 9 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: 10 * TestWebKitAPI/Tests/WebKit2/WKRetainPtr.cpp: Added. 11 (TestWebKitAPI::TEST): 12 1 13 2015-10-05 Simon Fraser <simon.fraser@apple.com> 2 14 -
trunk/Tools/TestWebKitAPI/PlatformGTK.cmake
r188239 r190572 111 111 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/WKPageGetScaleFactorNotZero.cpp 112 112 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/WKPreferences.cpp 113 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/WKRetainPtr.cpp 113 114 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/WKString.cpp 114 115 ${TESTWEBKITAPI_DIR}/Tests/WebKit2/WKStringJSString.cpp -
trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
r189997 r190572 23 23 1AEDE22613E5E7E700E62FE8 /* InjectedBundleControllerMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1AEDE22413E5E7A000E62FE8 /* InjectedBundleControllerMac.mm */; }; 24 24 1CB9BC381A67482300FE5678 /* WeakPtr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1CB9BC371A67482300FE5678 /* WeakPtr.cpp */; }; 25 1CF0D3791BBF2F3D00B4EF54 /* WKRetainPtr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1CF0D3781BBF2F3D00B4EF54 /* WKRetainPtr.cpp */; }; 25 26 260BA5791B1D2E7B004FA07C /* DFACombiner.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 260BA5781B1D2E7B004FA07C /* DFACombiner.cpp */; }; 26 27 26DF5A6315A2A27E003689C2 /* CancelLoadFromResourceLoadDelegate.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 26DF5A6115A2A22B003689C2 /* CancelLoadFromResourceLoadDelegate.html */; }; … … 471 472 1AFDE6541953B2C000C48FFA /* Optional.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Optional.cpp; sourceTree = "<group>"; }; 472 473 1CB9BC371A67482300FE5678 /* WeakPtr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WeakPtr.cpp; sourceTree = "<group>"; }; 474 1CF0D3781BBF2F3D00B4EF54 /* WKRetainPtr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKRetainPtr.cpp; sourceTree = "<group>"; }; 473 475 260BA5781B1D2E7B004FA07C /* DFACombiner.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DFACombiner.cpp; sourceTree = "<group>"; }; 474 476 260BA57A1B1D2EE2004FA07C /* DFAHelpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DFAHelpers.h; sourceTree = "<group>"; }; … … 1142 1144 BC90995D12567BC100083756 /* WKString.cpp */, 1143 1145 BC9099931256ACF100083756 /* WKStringJSString.cpp */, 1146 1CF0D3781BBF2F3D00B4EF54 /* WKRetainPtr.cpp */, 1144 1147 ); 1145 1148 path = WebKit2; … … 1746 1749 7A5623111AD5AF3E0096B920 /* MenuTypesForMouseEvents.cpp in Sources */, 1747 1750 51CB4AD81B3A079C00C1B1C6 /* ModalAlertsSPI.cpp in Sources */, 1751 1CF0D3791BBF2F3D00B4EF54 /* WKRetainPtr.cpp in Sources */, 1748 1752 26F6E1F01ADC749B00DE696B /* DFAMinimizer.cpp in Sources */, 1749 1753 260BA5791B1D2E7B004FA07C /* DFACombiner.cpp in Sources */,
Note: See TracChangeset
for help on using the changeset viewer.