Ignore:
Timestamp:
Jan 15, 2022, 5:33:25 PM (3 years ago)
Author:
Chris Dumez
Message:

Introduce dynamicDowncast<>() for convenience
https://bugs.webkit.org/show_bug.cgi?id=235259

Reviewed by Darin Adler.

Source/WebCore:

Start adopting dynamicDowncast<>().

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::setTimeline):
(WebCore::WebAnimation::willChangeRenderer):
(WebCore::WebAnimation::timingDidChange):
(WebCore::WebAnimation::invalidateEffect):
(WebCore::WebAnimation::finishNotificationSteps):
(WebCore::WebAnimation::resolve):
(WebCore::WebAnimation::persist):
(WebCore::WebAnimation::commitStyles):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

  • bindings/js/JSLazyEventListener.cpp:

(WebCore::isCloneInShadowTreeOfSVGUseElement):
(WebCore::JSLazyEventListener::initializeJSFunction const):

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::fontRangesForFamily):

  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::insertRule):

  • dom/Attr.cpp:

(WebCore::Attr::style):

  • dom/BroadcastChannel.cpp:

(WebCore::BroadcastChannel::MainThreadBridge::ensureOnMainThread):
(WebCore::BroadcastChannel::isEligibleForMessaging const):

  • dom/CharacterData.cpp:

(WebCore::CharacterData::parserAppendData):
(WebCore::CharacterData::setDataAndUpdate):

  • dom/CharacterData.h:

(WebCore::Node::length const):

  • dom/ComposedTreeAncestorIterator.h:

(WebCore::ComposedTreeAncestorIterator::traverseParent):
(WebCore::ComposedTreeAncestorAdapter::begin):

  • dom/ComposedTreeIterator.h:

(WebCore::firstChildInComposedTreeIgnoringUserAgentShadow):

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::removeNodeWithScriptAssertion):
(WebCore::ContainerNode::removeSelfOrChildNodesForInsertion):
(WebCore::destroyRenderTreeIfNeeded):
(WebCore::containsIncludingHostElements):
(WebCore::checkAcceptChild):

  • dom/ContainerNode.h:

(WebCore::Node::countChildNodes const):
(WebCore::Node::traverseToChildAt const):
(WebCore::Node::firstChild const):
(WebCore::Node::lastChild const):

  • dom/Document.cpp:

(WebCore::widgetForElement):
(WebCore::Document::buildAccessKeyCache):
(WebCore::Document::adjustFocusedNodeOnNodeRemoval):

  • dom/Element.cpp:

(WebCore::Element::insertedIntoAncestor):
(WebCore::Element::removedFromAncestor):

  • dom/ElementInlines.h:

(WebCore::Node::parentElement const):

  • dom/EventDispatcher.cpp:

(WebCore::EventDispatcher::dispatchEvent):

  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::toElement const):
(WebCore::MouseEvent::fromElement const):

  • dom/Node.cpp:

(WebCore::Node::renderBox const):
(WebCore::Node::renderBoxModelObject const):
(WebCore::Node::containingShadowRoot const):
(WebCore::Node::compareDocumentPosition):

  • dom/Position.cpp:

(WebCore::Position::containerText const):

  • dom/TextNodeTraversal.cpp:

(WebCore::TextNodeTraversal::contentsAsString):

  • dom/TreeScope.cpp:

(WebCore::TreeScope::elementsFromPoint):

  • dom/TypedElementDescendantIterator.h:

(WebCore::ElementDescendantRange<ElementType>::from const):
(WebCore::InclusiveElementDescendantRange<ElementType>::from const):

  • dom/VisitedLinkState.cpp:

(WebCore::linkHashForElement):

  • dom/messageports/MessagePortChannelProvider.cpp:

(WebCore::MessagePortChannelProvider::fromContext):

  • editing/Editing.cpp:

(WebCore::enclosingBlock):

  • html/HTMLOptGroupElement.cpp:

(WebCore::HTMLOptGroupElement::ownerSelectElement const):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::renderEmbeddedObject const):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):

  • layout/Verification.cpp:

(WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded):

  • page/AutoscrollController.cpp:

(WebCore::AutoscrollController::updateAutoscrollRenderer):

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::fired):

  • page/DragController.cpp:

(WebCore::asFileInput):
(WebCore::DragController::operationForLoad):

  • platform/DragImage.cpp:

(WebCore::ScopedNodeDragEnabler::ScopedNodeDragEnabler):

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::setCDMInstance):

  • rendering/LegacyInlineFlowBox.cpp:

(WebCore::LegacyInlineFlowBox::computeLogicalBoxHeights):
(WebCore::placeChildInlineBoxesInBlockDirection):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::marginValuesForChild const):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::findAutoscrollable):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::imageOrientation const):

  • rendering/RenderFileUploadControl.cpp:

(WebCore::RenderFileUploadControl::uploadButton const):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::updateInnerContentRect):
(WebCore::RenderImage::paintIntoRect):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::mayAffectLayout const):

  • rendering/RenderLayer.h:

(WebCore::RenderLayer::renderBox const):

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):

  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::updateValueNow const):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::offsetParent const):

  • rendering/RenderTableCol.cpp:

(WebCore::RenderTableCol::table const):

  • rendering/RenderTreeAsText.cpp:

(WebCore::writeDebugInfo):

  • rendering/RenderView.cpp:

(WebCore::RenderView::paintBoxDecorations):

  • rendering/SelectionRangeData.cpp:

(WebCore::containingBlockBelowView):

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::Parent::Parent):

  • style/ChildChangeInvalidation.h:

(WebCore::Style::ChildChangeInvalidation::ChildChangeInvalidation):

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::findViewAnchor const):
(WebCore::SVGSVGElement::findRootAnchor const):

  • testing/Internals.cpp:

(WebCore::bitmapImageFromImageElement):
(WebCore::pdfDocumentImageFromImageElement):

Source/WebKit:

Start adopting dynamicDowncast<>().

  • WebProcess/FullScreen/WebFullScreenManager.cpp:

(WebKit::WebFullScreenManager::didEnterFullScreen):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::paymentCoordinator):

Source/WebKitLegacy/mac:

Start adopting dynamicDowncast<>().

  • DOM/DOMUIKitExtensions.mm:

(-[DOMHTMLElement structuralComplexityContribution]):

  • WebView/WebHTMLRepresentation.mm:

(inputElementFromDOMElement):

Source/WTF:

Introduce dynamicDowncast<>() for convenience. It can result in more concise code for the common pattern
where we call is<T>(x) and then downcast<T>(x).

  • wtf/TypeCasts.h:

(WTF::dynamicDowncast):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/rendering/RenderTreeAsText.cpp

    r287921 r288069  
    474474{
    475475    if (behavior.contains(RenderAsTextFlag::ShowIDAndClass)) {
    476         if (Element* element = is<Element>(object.node()) ? downcast<Element>(object.node()) : nullptr) {
     476        if (auto* element = dynamicDowncast<Element>(object.node())) {
    477477            if (element->hasID())
    478478                ts << " id=\"" << element->getIdAttribute() << "\"";
Note: See TracChangeset for help on using the changeset viewer.