Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a94d55eae68febe63e553172ddda72561a422461
      
https://github.com/WebKit/WebKit/commit/a94d55eae68febe63e553172ddda72561a422461
  Author: Chris Dumez <[email protected]>
  Date:   2023-12-08 (Fri, 08 Dec 2023)

  Changed paths:
    M Source/WTF/wtf/WeakRef.h
    M Source/WebCore/editing/SelectionGeometryGatherer.h
    M Source/WebCore/page/LocalFrameView.cpp
    M Source/WebCore/page/LocalFrameView.h
    M Source/WebCore/rendering/RenderBlock.cpp
    M Source/WebCore/rendering/RenderElement.h
    M Source/WebCore/rendering/RenderObject.cpp
    M Source/WebCore/rendering/RenderObject.h
    M Source/WebCore/rendering/RenderSelection.cpp

  Log Message:
  -----------
  Use WeakRef / WeakPtr to store non-stack RenderObjects
https://bugs.webkit.org/show_bug.cgi?id=266040
rdar://118737861

Reviewed by Darin Adler.

Use WeakRef / WeakPtr to store non-stack RenderObjects instead of CheckedRef / 
CheckedPtr.
Crashes generated by CheckedRef / CheckedPtr are not actionable if the smart 
pointer is
not on the stack.

This tested as performance neutral on the benchmarks we track on macOS and iOS, 
thanks
to the recent WeakPtr optimizations.

There are still a few PackedCheckedPtr<RenderObject> data members that should be
converted. I'll look into it in a follow-up given we don't have a drop-in 
replacement
at the moment.

* Source/WTF/wtf/WeakRef.h:
* Source/WebCore/editing/SelectionGeometryGatherer.h:
* Source/WebCore/page/LocalFrameView.cpp:
(WebCore::LocalFrameView::didDestroyRenderTree):
(WebCore::LocalFrameView::addEmbeddedObjectToUpdate):
(WebCore::LocalFrameView::removeEmbeddedObjectToUpdate):
(WebCore::LocalFrameView::updateEmbeddedObjects):
* Source/WebCore/page/LocalFrameView.h:
* Source/WebCore/rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addContinuationWithOutline):
(WebCore::RenderBlock::paintContinuationOutlines):
* Source/WebCore/rendering/RenderElement.h:
(WebCore::RenderObject::checkedParent const):
* Source/WebCore/rendering/RenderObject.cpp:
(WebCore::RenderObject::isDescendantOf const):
* Source/WebCore/rendering/RenderObject.h:
* Source/WebCore/rendering/RenderSelection.cpp:
(WebCore::collectSelectionData):
(WebCore::RenderSelection::collectBounds const):
(WebCore::RenderSelection::apply):

Canonical link: https://commits.webkit.org/271749@main


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to