Title: [272235] trunk/Source/WebCore
Revision
272235
Author
[email protected]
Date
2021-02-02 14:00:32 -0800 (Tue, 02 Feb 2021)

Log Message

Null check renderers consistently in StyleImage code
https://bugs.webkit.org/show_bug.cgi?id=221287
rdar://73356955

Reviewed by Simon Fraser.

Many of these functions were asserting renderers are non-null, without a
strong guarantee that is true. Adding a few null checks makes the code
easier to reason about. An exception was add/removeClient, which never
need to be called with a null pointer, so for that we change the argument
type from a pointer to a reference.

* rendering/RenderElement.cpp:
(WebCore::RenderElement::updateFillImages): Pass a reference.
(WebCore::RenderElement::updateImage): Ditto.
(WebCore::RenderElement::willBeDestroyed): Ditto.

* rendering/RenderImageResource.cpp:
(WebCore::RenderImageResource::setCachedImage): Check renderer for null.
(WebCore::RenderImageResource::resetAnimation): Ditto.
(WebCore::RenderImageResource::setContainerContext): Ditto.

* rendering/RenderImageResourceStyleImage.cpp:
(WebCore::RenderImageResourceStyleImage::initialize): Pass a reference.
(WebCore::RenderImageResourceStyleImage::shutdown): Check the renderer for
null before passing a reference.
(WebCore::RenderImageResourceStyleImage::setContainerContext): Ditto.

* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::willBeDestroyed): Pass a reference.
(WebCore::RenderListMarker::styleDidChange): Ditto.

* rendering/style/StyleCachedImage.cpp:
(WebCore::StyleCachedImage::addClient): Take a reference.
(WebCore::StyleCachedImage::removeClient): Ditto.

* rendering/style/StyleGeneratedImage.cpp:
(WebCore::StyleGeneratedImage::imageSize const): Check renderer for null.
(WebCore::StyleGeneratedImage::addClient): Take a reference.
(WebCore::StyleGeneratedImage::removeClient): Ditto.
(WebCore::StyleGeneratedImage::image const): Check renderer for null.
(WebCore::StyleGeneratedImage::knownToBeOpaque const): Ditto.

* rendering/style/StyleMultiImage.cpp:
(WebCore::StyleMultiImage::addClient): Take a reference.
(WebCore::StyleMultiImage::removeClient): Ditto.

* rendering/style/StyleCachedImage.h: Update add/removeClient to take
a reference.
* rendering/style/StyleGeneratedImage.h: Ditto.
* rendering/style/StyleImage.h: Ditto.
* rendering/style/StyleMultiImage.h: Ditto.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (272234 => 272235)


--- trunk/Source/WebCore/ChangeLog	2021-02-02 21:54:31 UTC (rev 272234)
+++ trunk/Source/WebCore/ChangeLog	2021-02-02 22:00:32 UTC (rev 272235)
@@ -1,3 +1,58 @@
+2021-02-02  Darin Adler  <[email protected]>
+
+        Null check renderers consistently in StyleImage code
+        https://bugs.webkit.org/show_bug.cgi?id=221287
+        rdar://73356955
+
+        Reviewed by Simon Fraser.
+
+        Many of these functions were asserting renderers are non-null, without a
+        strong guarantee that is true. Adding a few null checks makes the code
+        easier to reason about. An exception was add/removeClient, which never
+        need to be called with a null pointer, so for that we change the argument
+        type from a pointer to a reference.
+
+        * rendering/RenderElement.cpp:
+        (WebCore::RenderElement::updateFillImages): Pass a reference.
+        (WebCore::RenderElement::updateImage): Ditto.
+        (WebCore::RenderElement::willBeDestroyed): Ditto.
+
+        * rendering/RenderImageResource.cpp:
+        (WebCore::RenderImageResource::setCachedImage): Check renderer for null.
+        (WebCore::RenderImageResource::resetAnimation): Ditto.
+        (WebCore::RenderImageResource::setContainerContext): Ditto.
+
+        * rendering/RenderImageResourceStyleImage.cpp:
+        (WebCore::RenderImageResourceStyleImage::initialize): Pass a reference.
+        (WebCore::RenderImageResourceStyleImage::shutdown): Check the renderer for
+        null before passing a reference.
+        (WebCore::RenderImageResourceStyleImage::setContainerContext): Ditto.
+
+        * rendering/RenderListMarker.cpp:
+        (WebCore::RenderListMarker::willBeDestroyed): Pass a reference.
+        (WebCore::RenderListMarker::styleDidChange): Ditto.
+
+        * rendering/style/StyleCachedImage.cpp:
+        (WebCore::StyleCachedImage::addClient): Take a reference.
+        (WebCore::StyleCachedImage::removeClient): Ditto.
+
+        * rendering/style/StyleGeneratedImage.cpp:
+        (WebCore::StyleGeneratedImage::imageSize const): Check renderer for null.
+        (WebCore::StyleGeneratedImage::addClient): Take a reference.
+        (WebCore::StyleGeneratedImage::removeClient): Ditto.
+        (WebCore::StyleGeneratedImage::image const): Check renderer for null.
+        (WebCore::StyleGeneratedImage::knownToBeOpaque const): Ditto.
+
+        * rendering/style/StyleMultiImage.cpp:
+        (WebCore::StyleMultiImage::addClient): Take a reference.
+        (WebCore::StyleMultiImage::removeClient): Ditto.
+
+        * rendering/style/StyleCachedImage.h: Update add/removeClient to take
+        a reference.
+        * rendering/style/StyleGeneratedImage.h: Ditto.
+        * rendering/style/StyleImage.h: Ditto.
+        * rendering/style/StyleMultiImage.h: Ditto.
+
 2021-02-02  Said Abou-Hallawa  <[email protected]>
 
         [macOS] Force loading the HEIF reader symbols before transcoding any HEIF image

Modified: trunk/Source/WebCore/rendering/RenderElement.cpp (272234 => 272235)


--- trunk/Source/WebCore/rendering/RenderElement.cpp	2021-02-02 21:54:31 UTC (rev 272234)
+++ trunk/Source/WebCore/rendering/RenderElement.cpp	2021-02-02 22:00:32 UTC (rev 272235)
@@ -3,7 +3,7 @@
  *           (C) 1999 Antti Koivisto ([email protected])
  *           (C) 2005 Allan Sandfeld Jensen ([email protected])
  *           (C) 2005, 2006 Samuel Weinig ([email protected])
- * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2013, 2015 Apple Inc. All rights reserved.
+ * Copyright (C) 2005-2021 Apple Inc. All rights reserved.
  * Copyright (C) 2010, 2012 Google Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
@@ -360,11 +360,11 @@
     // Add before removing, to avoid removing all clients of an image that is in both sets.
     for (auto* layer = &newLayers; layer; layer = layer->next()) {
         if (layer->image())
-            layer->image()->addClient(this);
+            layer->image()->addClient(*this);
     }
     for (auto* layer = oldLayers; layer; layer = layer->next()) {
         if (layer->image())
-            layer->image()->removeClient(this);
+            layer->image()->removeClient(*this);
     }
 }
 
@@ -373,9 +373,9 @@
     if (oldImage == newImage)
         return;
     if (oldImage)
-        oldImage->removeClient(this);
+        oldImage->removeClient(*this);
     if (newImage)
-        newImage->addClient(this);
+        newImage->addClient(*this);
 }
 
 void RenderElement::updateShapeImage(const ShapeValue* oldShapeValue, const ShapeValue* newShapeValue)
@@ -1028,19 +1028,19 @@
     if (hasInitializedStyle()) {
         for (auto* bgLayer = &m_style.backgroundLayers(); bgLayer; bgLayer = bgLayer->next()) {
             if (auto* backgroundImage = bgLayer->image())
-                backgroundImage->removeClient(this);
+                backgroundImage->removeClient(*this);
         }
         for (auto* maskLayer = &m_style.maskLayers(); maskLayer; maskLayer = maskLayer->next()) {
             if (auto* maskImage = maskLayer->image())
-                maskImage->removeClient(this);
+                maskImage->removeClient(*this);
         }
         if (auto* borderImage = m_style.borderImage().image())
-            borderImage->removeClient(this);
+            borderImage->removeClient(*this);
         if (auto* maskBoxImage = m_style.maskBoxImage().image())
-            maskBoxImage->removeClient(this);
+            maskBoxImage->removeClient(*this);
         if (auto shapeValue = m_style.shapeOutside()) {
             if (auto shapeImage = shapeValue->image())
-                shapeImage->removeClient(this);
+                shapeImage->removeClient(*this);
         }
     }
     if (m_hasPausedImageAnimations)

Modified: trunk/Source/WebCore/rendering/RenderImageResource.cpp (272234 => 272235)


--- trunk/Source/WebCore/rendering/RenderImageResource.cpp	2021-02-02 21:54:31 UTC (rev 272234)
+++ trunk/Source/WebCore/rendering/RenderImageResource.cpp	2021-02-02 22:00:32 UTC (rev 272235)
@@ -4,7 +4,7 @@
  * Copyright (C) 2000 Dirk Mueller <[email protected]>
  * Copyright (C) 2006 Allan Sandfeld Jensen <[email protected]>
  * Copyright (C) 2006 Samuel Weinig <[email protected]>
- * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2021 Apple Inc. All rights reserved.
  * Copyright (C) 2010 Google Inc. All rights reserved.
  * Copyright (C) 2010 Patrick Gansterer <[email protected]>
  *
@@ -39,9 +39,7 @@
 
 WTF_MAKE_ISO_ALLOCATED_IMPL(RenderImageResource);
 
-RenderImageResource::RenderImageResource()
-{
-}
+RenderImageResource::RenderImageResource() = default;
 
 void RenderImageResource::initialize(RenderElement& renderer, CachedImage* styleCachedImage)
 {
@@ -63,9 +61,8 @@
     if (m_cachedImage == newImage)
         return;
 
-    ASSERT(m_renderer);
-    if (m_cachedImage && m_cachedImageRemoveClientIsNeeded)
-        m_cachedImage->removeClient(*renderer());
+    if (m_cachedImage && m_renderer && m_cachedImageRemoveClientIsNeeded)
+        m_cachedImage->removeClient(*m_renderer);
     m_cachedImage = newImage;
     m_cachedImageRemoveClientIsNeeded = true;
     if (!m_cachedImage)
@@ -81,11 +78,10 @@
     if (!m_cachedImage)
         return;
 
-    ASSERT(m_renderer);
     image()->resetAnimation();
 
-    if (!renderer()->needsLayout())
-        renderer()->repaint();
+    if (m_renderer && !m_renderer->needsLayout())
+        m_renderer->repaint();
 }
 
 RefPtr<Image> RenderImageResource::image(const IntSize&) const
@@ -92,7 +88,7 @@
 {
     if (!m_cachedImage)
         return &Image::nullImage();
-    if (auto image = m_cachedImage->imageForRenderer(renderer()))
+    if (auto image = m_cachedImage->imageForRenderer(m_renderer.get()))
         return image;
     return &Image::nullImage();
 }
@@ -99,10 +95,9 @@
 
 void RenderImageResource::setContainerContext(const IntSize& imageContainerSize, const URL& imageURL)
 {
-    if (!m_cachedImage)
+    if (!m_cachedImage || !m_renderer)
         return;
-    ASSERT(m_renderer);
-    m_cachedImage->setContainerContextForClient(*renderer(), imageContainerSize, renderer()->style().effectiveZoom(), imageURL);
+    m_cachedImage->setContainerContextForClient(*m_renderer, imageContainerSize, m_renderer->style().effectiveZoom(), imageURL);
 }
 
 LayoutSize RenderImageResource::imageSize(float multiplier, CachedImage::SizeType type) const
@@ -109,9 +104,9 @@
 {
     if (!m_cachedImage)
         return LayoutSize();
-    LayoutSize size = m_cachedImage->imageSizeForRenderer(renderer(), multiplier, type);
-    if (is<RenderImage>(renderer()))
-        size.scale(downcast<RenderImage>(*renderer()).imageDevicePixelRatio());
+    LayoutSize size = m_cachedImage->imageSizeForRenderer(m_renderer.get(), multiplier, type);
+    if (is<RenderImage>(m_renderer.get()))
+        size.scale(downcast<RenderImage>(*m_renderer).imageDevicePixelRatio());
     return size;
 }
 

Modified: trunk/Source/WebCore/rendering/RenderImageResourceStyleImage.cpp (272234 => 272235)


--- trunk/Source/WebCore/rendering/RenderImageResourceStyleImage.cpp	2021-02-02 21:54:31 UTC (rev 272234)
+++ trunk/Source/WebCore/rendering/RenderImageResourceStyleImage.cpp	2021-02-02 22:00:32 UTC (rev 272235)
@@ -4,7 +4,7 @@
  * Copyright (C) 2000 Dirk Mueller <[email protected]>
  * Copyright (C) 2006 Allan Sandfeld Jensen <[email protected]>
  * Copyright (C) 2006 Samuel Weinig <[email protected]>
- * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009, 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2021 Apple Inc. All rights reserved.
  * Copyright (C) 2010 Google Inc. All rights reserved.
  * Copyright (C) 2010 Patrick Gansterer <[email protected]>
  *
@@ -45,14 +45,14 @@
 void RenderImageResourceStyleImage::initialize(RenderElement& renderer)
 {
     RenderImageResource::initialize(renderer, m_styleImage->hasCachedImage() ? m_styleImage.get().cachedImage() : nullptr);
-    m_styleImage->addClient(this->renderer());
+    m_styleImage->addClient(renderer);
 }
 
 void RenderImageResourceStyleImage::shutdown()
 {
     RenderImageResource::shutdown();
-    if (renderer())
-        m_styleImage->removeClient(renderer());
+    if (auto renderer = this->renderer())
+        m_styleImage->removeClient(*renderer);
 }
 
 RefPtr<Image> RenderImageResourceStyleImage::image(const IntSize& size) const
@@ -67,8 +67,8 @@
 
 void RenderImageResourceStyleImage::setContainerContext(const IntSize& size, const URL&)
 {
-    ASSERT(renderer());
-    m_styleImage->setContainerContextForRenderer(*renderer(), size, renderer()->style().effectiveZoom());
+    if (auto renderer = this->renderer())
+        m_styleImage->setContainerContextForRenderer(*renderer, size, renderer->style().effectiveZoom());
 }
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/rendering/RenderListMarker.cpp (272234 => 272235)


--- trunk/Source/WebCore/rendering/RenderListMarker.cpp	2021-02-02 21:54:31 UTC (rev 272234)
+++ trunk/Source/WebCore/rendering/RenderListMarker.cpp	2021-02-02 22:00:32 UTC (rev 272235)
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 1999 Lars Knoll ([email protected])
  *           (C) 1999 Antti Koivisto ([email protected])
- * Copyright (C) 2003-2019 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2021 Apple Inc. All rights reserved.
  * Copyright (C) 2006 Andrew Wellington ([email protected])
  * Copyright (C) 2010 Daniel Bates ([email protected])
  *
@@ -1082,7 +1082,7 @@
 void RenderListMarker::willBeDestroyed()
 {
     if (m_image)
-        m_image->removeClient(this);
+        m_image->removeClient(*this);
     RenderBox::willBeDestroyed();
 }
 
@@ -1100,10 +1100,10 @@
 
     if (m_image != style().listStyleImage()) {
         if (m_image)
-            m_image->removeClient(this);
+            m_image->removeClient(*this);
         m_image = style().listStyleImage();
         if (m_image)
-            m_image->addClient(this);
+            m_image->addClient(*this);
     }
 }
 

Modified: trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp (272234 => 272235)


--- trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp	2021-02-02 21:54:31 UTC (rev 272234)
+++ trunk/Source/WebCore/rendering/style/StyleCachedImage.cpp	2021-02-02 22:00:32 UTC (rev 272235)
@@ -2,7 +2,7 @@
  * Copyright (C) 2000 Lars Knoll ([email protected])
  *           (C) 2000 Antti Koivisto ([email protected])
  *           (C) 2000 Dirk Mueller ([email protected])
- * Copyright (C) 2003, 2005-2008, 2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2021 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -156,23 +156,20 @@
     m_cachedImage->setContainerContextForClient(renderer, LayoutSize(containerSize), containerZoom, imageURL());
 }
 
-void StyleCachedImage::addClient(RenderElement* renderer)
+void StyleCachedImage::addClient(RenderElement& renderer)
 {
     ASSERT(!m_isPending);
     if (!m_cachedImage)
         return;
-    ASSERT(renderer);
-    m_cachedImage->addClient(*renderer);
+    m_cachedImage->addClient(renderer);
 }
 
-void StyleCachedImage::removeClient(RenderElement* renderer)
+void StyleCachedImage::removeClient(RenderElement& renderer)
 {
     ASSERT(!m_isPending);
     if (!m_cachedImage)
         return;
-    ASSERT(renderer);
-
-    m_cachedImage->removeClient(*renderer);
+    m_cachedImage->removeClient(renderer);
 }
 
 RefPtr<Image> StyleCachedImage::image(RenderElement* renderer, const FloatSize&) const

Modified: trunk/Source/WebCore/rendering/style/StyleCachedImage.h (272234 => 272235)


--- trunk/Source/WebCore/rendering/style/StyleCachedImage.h	2021-02-02 21:54:31 UTC (rev 272234)
+++ trunk/Source/WebCore/rendering/style/StyleCachedImage.h	2021-02-02 22:00:32 UTC (rev 272235)
@@ -2,7 +2,7 @@
  * Copyright (C) 2000 Lars Knoll ([email protected])
  *           (C) 2000 Antti Koivisto ([email protected])
  *           (C) 2000 Dirk Mueller ([email protected])
- * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2021 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -58,8 +58,8 @@
     void computeIntrinsicDimensions(const RenderElement*, Length& intrinsicWidth, Length& intrinsicHeight, FloatSize& intrinsicRatio) final;
     bool usesImageContainerSize() const final;
     void setContainerContextForRenderer(const RenderElement&, const FloatSize&, float) final;
-    void addClient(RenderElement*) final;
-    void removeClient(RenderElement*) final;
+    void addClient(RenderElement&) final;
+    void removeClient(RenderElement&) final;
     RefPtr<Image> image(RenderElement*, const FloatSize&) const final;
     float imageScaleFactor() const final;
     bool knownToBeOpaque(const RenderElement*) const final;

Modified: trunk/Source/WebCore/rendering/style/StyleGeneratedImage.cpp (272234 => 272235)


--- trunk/Source/WebCore/rendering/style/StyleGeneratedImage.cpp	2021-02-02 21:54:31 UTC (rev 272234)
+++ trunk/Source/WebCore/rendering/style/StyleGeneratedImage.cpp	2021-02-02 22:00:32 UTC (rev 272235)
@@ -2,7 +2,7 @@
  * Copyright (C) 2000 Lars Knoll ([email protected])
  *           (C) 2000 Antti Koivisto ([email protected])
  *           (C) 2000 Dirk Mueller ([email protected])
- * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2021 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -54,8 +54,10 @@
 
 FloatSize StyleGeneratedImage::imageSize(const RenderElement* renderer, float multiplier) const
 {
-    ASSERT(renderer);
     if (m_fixedSize) {
+        if (!renderer)
+            return { };
+
         FloatSize fixedSize = m_imageGeneratorValue->fixedSize(*renderer);
         if (multiplier == 1.0f)
             return fixedSize;
@@ -86,28 +88,24 @@
     intrinsicRatio = size;
 }
 
-void StyleGeneratedImage::addClient(RenderElement* renderer)
+void StyleGeneratedImage::addClient(RenderElement& renderer)
 {
-    ASSERT(renderer);
-    m_imageGeneratorValue->addClient(*renderer);
+    m_imageGeneratorValue->addClient(renderer);
 }
 
-void StyleGeneratedImage::removeClient(RenderElement* renderer)
+void StyleGeneratedImage::removeClient(RenderElement& renderer)
 {
-    ASSERT(renderer);
-    m_imageGeneratorValue->removeClient(*renderer);
+    m_imageGeneratorValue->removeClient(renderer);
 }
 
 RefPtr<Image> StyleGeneratedImage::image(RenderElement* renderer, const FloatSize& size) const
 {
-    ASSERT(renderer);
-    return m_imageGeneratorValue->image(*renderer, size);
+    return renderer ? m_imageGeneratorValue->image(*renderer, size) : &Image::nullImage();
 }
 
 bool StyleGeneratedImage::knownToBeOpaque(const RenderElement* renderer) const
 {
-    ASSERT(renderer);
-    return m_imageGeneratorValue->knownToBeOpaque(*renderer);
+    return renderer && m_imageGeneratorValue->knownToBeOpaque(*renderer);
 }
 
 }

Modified: trunk/Source/WebCore/rendering/style/StyleGeneratedImage.h (272234 => 272235)


--- trunk/Source/WebCore/rendering/style/StyleGeneratedImage.h	2021-02-02 21:54:31 UTC (rev 272234)
+++ trunk/Source/WebCore/rendering/style/StyleGeneratedImage.h	2021-02-02 22:00:32 UTC (rev 272235)
@@ -2,7 +2,7 @@
  * Copyright (C) 2000 Lars Knoll ([email protected])
  *           (C) 2000 Antti Koivisto ([email protected])
  *           (C) 2000 Dirk Mueller ([email protected])
- * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2021 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -54,8 +54,8 @@
     void computeIntrinsicDimensions(const RenderElement*, Length& intrinsicWidth, Length& intrinsicHeight, FloatSize& intrinsicRatio) final;
     bool usesImageContainerSize() const final { return !m_fixedSize; }
     void setContainerContextForRenderer(const RenderElement&, const FloatSize& containerSize, float) final { m_containerSize = containerSize; }
-    void addClient(RenderElement*) final;
-    void removeClient(RenderElement*) final;
+    void addClient(RenderElement&) final;
+    void removeClient(RenderElement&) final;
     RefPtr<Image> image(RenderElement*, const FloatSize&) const final;
     bool knownToBeOpaque(const RenderElement*) const final;
 

Modified: trunk/Source/WebCore/rendering/style/StyleImage.h (272234 => 272235)


--- trunk/Source/WebCore/rendering/style/StyleImage.h	2021-02-02 21:54:31 UTC (rev 272234)
+++ trunk/Source/WebCore/rendering/style/StyleImage.h	2021-02-02 22:00:32 UTC (rev 272235)
@@ -2,7 +2,7 @@
  * Copyright (C) 2000 Lars Knoll ([email protected])
  *           (C) 2000 Antti Koivisto ([email protected])
  *           (C) 2000 Dirk Mueller ([email protected])
- * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2021 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -60,8 +60,8 @@
     virtual bool imageHasRelativeHeight() const = 0;
     virtual bool usesImageContainerSize() const = 0;
     virtual void setContainerContextForRenderer(const RenderElement&, const FloatSize&, float) = 0;
-    virtual void addClient(RenderElement*) = 0;
-    virtual void removeClient(RenderElement*) = 0;
+    virtual void addClient(RenderElement&) = 0;
+    virtual void removeClient(RenderElement&) = 0;
     virtual RefPtr<Image> image(RenderElement*, const FloatSize&) const = 0;
     virtual WrappedImagePtr data() const = 0;
     virtual float imageScaleFactor() const { return 1; }

Modified: trunk/Source/WebCore/rendering/style/StyleMultiImage.cpp (272234 => 272235)


--- trunk/Source/WebCore/rendering/style/StyleMultiImage.cpp	2021-02-02 21:54:31 UTC (rev 272234)
+++ trunk/Source/WebCore/rendering/style/StyleMultiImage.cpp	2021-02-02 22:00:32 UTC (rev 272235)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003, 2005-2008, 2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2021 Apple Inc. All rights reserved.
  * Copyright (C) 2020 Noam Rosenthal ([email protected])
  *
  * This library is free software; you can redistribute it and/or
@@ -134,7 +134,7 @@
     m_selectedImage->setContainerContextForRenderer(renderer, containerSize, containerZoom);
 }
 
-void StyleMultiImage::addClient(RenderElement* renderer)
+void StyleMultiImage::addClient(RenderElement& renderer)
 {
     if (!m_selectedImage)
         return;
@@ -141,7 +141,7 @@
     m_selectedImage->addClient(renderer);
 }
 
-void StyleMultiImage::removeClient(RenderElement* renderer)
+void StyleMultiImage::removeClient(RenderElement& renderer)
 {
     if (!m_selectedImage)
         return;

Modified: trunk/Source/WebCore/rendering/style/StyleMultiImage.h (272234 => 272235)


--- trunk/Source/WebCore/rendering/style/StyleMultiImage.h	2021-02-02 21:54:31 UTC (rev 272234)
+++ trunk/Source/WebCore/rendering/style/StyleMultiImage.h	2021-02-02 22:00:32 UTC (rev 272235)
@@ -2,7 +2,7 @@
  * Copyright (C) 2000 Lars Knoll ([email protected])
  *           (C) 2000 Antti Koivisto ([email protected])
  *           (C) 2000 Dirk Mueller ([email protected])
- * Copyright (C) 2003, 2005-2008, 2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2021 Apple Inc. All rights reserved.
  * Copyright (C) 2020 Noam Rosenthal ([email protected])
  *
 * This library is free software; you can redistribute it and/or
@@ -57,8 +57,8 @@
     void computeIntrinsicDimensions(const RenderElement*, Length& intrinsicWidth, Length& intrinsicHeight, FloatSize& intrinsicRatio) final;
     bool usesImageContainerSize() const final;
     void setContainerContextForRenderer(const RenderElement&, const FloatSize&, float);
-    void addClient(RenderElement*) final;
-    void removeClient(RenderElement*) final;
+    void addClient(RenderElement&) final;
+    void removeClient(RenderElement&) final;
     RefPtr<Image> image(RenderElement*, const FloatSize&) const final;
     float imageScaleFactor() const final;
     bool knownToBeOpaque(const RenderElement*) const final;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to