Changeset 278344 in webkit
- Timestamp:
- Jun 2, 2021, 1:43:13 AM (5 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 4 edited
-
Source/WTF/ChangeLog (modified) (1 diff)
-
Source/WTF/WTF.xcodeproj/project.pbxproj (modified) (2 diffs)
-
Source/WTF/wtf/CheckedPtr.h (added)
-
Tools/ChangeLog (modified) (1 diff)
-
Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj (modified) (4 diffs)
-
Tools/TestWebKitAPI/Tests/WTF/CheckedPtr.cpp (added)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WTF/ChangeLog
r278340 r278344 1 2021-05-23 Ryosuke Niwa <rniwa@webkit.org> 2 3 Add CheckedPtr 4 https://bugs.webkit.org/show_bug.cgi?id=226158 5 6 Reviewed by Antti Koivisto. 7 8 This patch introduces a new type of smart pointer, CheckedPtr, which behaves like RefPtr and 9 let each object keep track of pointers pointing to the object. Unlike CheckedPtr, the purpose of 10 this internal counter is to release assert that there is no outstanding pointer at the time 11 of destruction instead of keeping the object alive when there is one. 12 13 * WTF.xcodeproj/project.pbxproj: 14 * wtf/CheckedPtr.h: Added. 15 (WTF::CheckedPtr): Added. 16 (WTF::CheckedPtr::CheckedPtr): Added. 17 (WTF::CheckedPtr::~CheckedPtr): Added. 18 (WTF::CheckedPtr::isHashTableDeletedValue const): Added. 19 (WTF::CheckedPtr::operator UnspecifiedBoolType const): Added. 20 (WTF::CheckedPtr::operator! const): Added. 21 (WTF::CheckedPtr::get const): Added. 22 (WTF::CheckedPtr::get): Added. 23 (WTF::CheckedPtr::operator* const): Added. 24 (WTF::CheckedPtr::operator*): Added. 25 (WTF::CheckedPtr::operator-> const): Added. 26 (WTF::CheckedPtr::operator->): Added. 27 (WTF::CheckedPtr::operator== const): Added. 28 (WTF::CheckedPtr::operator=): Added. 29 (WTF::CheckedPtr::unspecifiedBoolTypeInstance const): Added. 30 (WTF::CheckedPtr::refIfNotNull): Added. 31 (WTF::CheckedPtr::derefIfNotNull): Added. 32 (WTF::makeCheckedPtr): Added. 33 (WTF::is): Added. 34 (WTF::CanMakeCheckedPtr): Added. 35 (WTF::CanMakeCheckedPtr::~CanMakeCheckedPtr): Added. Release assert that m_ptrCount is 0. 36 (WTF::CanMakeCheckedPtr::ptrCount const): Added. 37 (WTF::CanMakeCheckedPtr::incrementPtrCount): Added. 38 (WTF::CanMakeCheckedPtr::decrementPtrCount): Added. Note that we don't do anything when m_ptrCount 39 becomes 0 unlike RefPtr. 40 (WTF::HashTraits<CheckedPtr<P>>): Added. 41 (WTF::HashTraits<CheckedPtr<P>>::emptyValue): Added. 42 (WTF::HashTraits<CheckedPtr<P>>::peek): Added. 43 (WTF::HashTraits<CheckedPtr<P>>::customDeleteBucket): Added. 44 1 45 2021-06-01 Darin Adler <darin@apple.com> 2 46 -
trunk/Source/WTF/WTF.xcodeproj/project.pbxproj
r278340 r278344 508 508 9B67F3F12228D5310030DE9C /* WeakHashSet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WeakHashSet.h; sourceTree = "<group>"; }; 509 509 9B96E9B324FF77B8001756C3 /* CompactUniquePtrTuple.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CompactUniquePtrTuple.h; sourceTree = "<group>"; }; 510 9BB91F512648EA4D00A56217 /* CheckedPtr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CheckedPtr.h; sourceTree = "<group>"; }; 510 511 9BC70F04176C379D00101DEC /* AtomStringTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AtomStringTable.cpp; sourceTree = "<group>"; }; 511 512 9BD8F40A176C2AD80002D865 /* AtomStringTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AtomStringTable.h; sourceTree = "<group>"; }; … … 984 985 A8A4726A151A825A004123FF /* CheckedArithmetic.h */, 985 986 A8A4726B151A825A004123FF /* CheckedBoolean.h */, 987 9BB91F512648EA4D00A56217 /* CheckedPtr.h */, 986 988 0F66B2801DC97BAB004A1D3F /* ClockType.cpp */, 987 989 0F66B2811DC97BAB004A1D3F /* ClockType.h */, -
trunk/Tools/ChangeLog
r278340 r278344 1 2021-05-23 Ryosuke Niwa <rniwa@webkit.org> 2 3 Add CheckedPtr 4 https://bugs.webkit.org/show_bug.cgi?id=226158 5 6 Reviewed by Antti Koivisto. 7 8 Added basic tests. 9 10 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: 11 * TestWebKitAPI/Tests/WTF/CheckedPtr.cpp: Added. 12 (TestWebKitAPI::CheckedObject): Added. 13 (TestWebKitAPI::DerivedCheckedObject): Added. 14 (WTF_CheckedPtr.Basic): 15 (WTF_CheckedPtr.DerivedClass): 16 (WTF_CheckedPtr.HashSet): 17 1 18 2021-06-01 Darin Adler <darin@apple.com> 2 19 -
trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
r278254 r278344 904 904 9BAD7F3E22690F2000F8DA66 /* DeallocWebViewInEventListener.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9BAD7F3D22690F1400F8DA66 /* DeallocWebViewInEventListener.mm */; }; 905 905 9BAE177B22E2BBFB00DF3098 /* cocoa-writer-markup-with-system-fonts.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 9BAE177A22E2BB6B00DF3098 /* cocoa-writer-markup-with-system-fonts.html */; }; 906 9BBCA4DF265ACA5B00DFE723 /* CheckedPtr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9BBCA4DE265ACA5B00DFE723 /* CheckedPtr.cpp */; }; 906 907 9BCB7C2820130600003E7C0C /* PasteHTML.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9BCB7C2620130600003E7C0C /* PasteHTML.mm */; }; 907 908 9BCD411A206DBCA3001D71BE /* mso-list-on-h4.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 9BCD4119206D5ED7001D71BE /* mso-list-on-h4.html */; }; … … 2617 2618 9BAD7F3D22690F1400F8DA66 /* DeallocWebViewInEventListener.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DeallocWebViewInEventListener.mm; sourceTree = "<group>"; }; 2618 2619 9BAE177A22E2BB6B00DF3098 /* cocoa-writer-markup-with-system-fonts.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = "cocoa-writer-markup-with-system-fonts.html"; sourceTree = "<group>"; }; 2620 9BBCA4DE265ACA5B00DFE723 /* CheckedPtr.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CheckedPtr.cpp; sourceTree = "<group>"; }; 2619 2621 9BCB7C2620130600003E7C0C /* PasteHTML.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = PasteHTML.mm; sourceTree = "<group>"; }; 2620 2622 9BCD4119206D5ED7001D71BE /* mso-list-on-h4.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = "mso-list-on-h4.html"; sourceTree = "<group>"; }; … … 4416 4418 0451A5A6235E438E009DF945 /* BumpPointerAllocator.cpp */, 4417 4419 A7A966DA140ECCC8005EF9B4 /* CheckedArithmeticOperations.cpp */, 4420 9BBCA4DE265ACA5B00DFE723 /* CheckedPtr.cpp */, 4418 4421 E302BDA92404B92300865277 /* CompactRefPtrTuple.cpp */, 4419 4422 9B0C051824FDFB7000F2FE31 /* CompactUniquePtrTuple.cpp */, … … 5178 5181 04DB2396235E43EC00328F17 /* BumpPointerAllocator.cpp in Sources */, 5179 5182 7C83DEA01D0A590C00FEBCF3 /* CheckedArithmeticOperations.cpp in Sources */, 5183 9BBCA4DF265ACA5B00DFE723 /* CheckedPtr.cpp in Sources */, 5180 5184 E302BDAA2404B92400865277 /* CompactRefPtrTuple.cpp in Sources */, 5181 5185 9B0C051924FDFB7D00F2FE31 /* CompactUniquePtrTuple.cpp in Sources */,
Note:
See TracChangeset
for help on using the changeset viewer.