Changeset 164224 in webkit


Ignore:
Timestamp:
Feb 17, 2014 9:18:29 AM (10 years ago)
Author:
ddkilzer@apple.com
Message:

CounterContentData::counter() and ImageContentData::image() should return references
<http://webkit.org/b/128671>

Reviewed by Darin Adler.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::contentToCSSValue):

  • Update to use references. Remove useless ASSERTs.
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::loadPendingImages):

  • Update to use references. StyleResolver::loadPendingImage() will be changed to take a reference in the near future.
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::createFor):

  • Update to use references. The auto keyword wanted to instantiate a StyleImage instead a reference, so it was replaced.
  • rendering/style/ContentData.h:

(WebCore::ImageContentData::ImageContentData): Add ASSERT that
m_image is not NULL.
(WebCore::ImageContentData::image): Return a reference. Remove
useless overload with identical name.
(WebCore::ImageContentData::cloneInternal): Simplify by using
implicit PassRefPtr constructor.
(WebCore::operator==): Remove unneeded deref operators.
(WebCore::CounterContentData::counter): Return a reference.
(WebCore::CounterContentData::cloneInternal): Remove unneeded
deref operator.
(WebCore::operator==): Remove unneeded deref operators.

Location:
trunk/Source/WebCore
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r164223 r164224  
     12014-02-17  David Kilzer  <ddkilzer@apple.com>
     2
     3        CounterContentData::counter() and ImageContentData::image() should return references
     4        <http://webkit.org/b/128671>
     5
     6        Reviewed by Darin Adler.
     7
     8        * css/CSSComputedStyleDeclaration.cpp:
     9        (WebCore::contentToCSSValue):
     10        - Update to use references.  Remove useless ASSERTs.
     11
     12        * css/StyleResolver.cpp:
     13        (WebCore::StyleResolver::loadPendingImages):
     14        - Update to use references.  StyleResolver::loadPendingImage()
     15          will be changed to take a reference in the near future.
     16
     17        * rendering/RenderElement.cpp:
     18        (WebCore::RenderElement::createFor):
     19        - Update to use references.  The auto keyword wanted to
     20          instantiate a StyleImage instead a reference, so it was
     21          replaced.
     22
     23        * rendering/style/ContentData.h:
     24        (WebCore::ImageContentData::ImageContentData): Add ASSERT that
     25        m_image is not NULL.
     26        (WebCore::ImageContentData::image): Return a reference.  Remove
     27        useless overload with identical name.
     28        (WebCore::ImageContentData::cloneInternal): Simplify by using
     29        implicit PassRefPtr constructor.
     30        (WebCore::operator==): Remove unneeded deref operators.
     31        (WebCore::CounterContentData::counter): Return a reference.
     32        (WebCore::CounterContentData::cloneInternal): Remove unneeded
     33        deref operator.
     34        (WebCore::operator==): Remove unneeded deref operators.
     35
    1362014-02-17  Jer Noble  <jer.noble@apple.com>
    237
  • trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp

    r164115 r164224  
    14081408    auto list = CSSValueList::createSpaceSeparated();
    14091409    for (const ContentData* contentData = style->contentData(); contentData; contentData = contentData->next()) {
    1410         if (contentData->isCounter()) {
    1411             const CounterContent* counter = toCounterContentData(contentData)->counter();
    1412             ASSERT(counter);
    1413             list.get().append(cssValuePool().createValue(counter->identifier(), CSSPrimitiveValue::CSS_COUNTER_NAME));
    1414         } else if (contentData->isImage()) {
    1415             const StyleImage* image = toImageContentData(contentData)->image();
    1416             ASSERT(image);
    1417             list.get().append(image->cssValue());
    1418         } else if (contentData->isText())
     1410        if (contentData->isCounter())
     1411            list.get().append(cssValuePool().createValue(toCounterContentData(contentData)->counter().identifier(), CSSPrimitiveValue::CSS_COUNTER_NAME));
     1412        else if (contentData->isImage())
     1413            list.get().append(toImageContentData(contentData)->image().cssValue());
     1414        else if (contentData->isText())
    14191415            list.get().append(cssValuePool().createValue(toTextContentData(contentData)->text(), CSSPrimitiveValue::CSS_STRING));
    14201416    }
  • trunk/Source/WebCore/css/StyleResolver.cpp

    r164131 r164224  
    35453545            for (ContentData* contentData = const_cast<ContentData*>(m_state.style()->contentData()); contentData; contentData = contentData->next()) {
    35463546                if (contentData->isImage()) {
    3547                     StyleImage* image = toImageContentData(contentData)->image();
    3548                     if (image->isPendingImage()) {
    3549                         RefPtr<StyleImage> loadedImage = loadPendingImage(static_cast<StylePendingImage*>(image));
     3547                    auto& styleImage = toImageContentData(contentData)->image();
     3548                    if (styleImage.isPendingImage()) {
     3549                        RefPtr<StyleImage> loadedImage = loadPendingImage(static_cast<StylePendingImage*>(const_cast<StyleImage*>(&styleImage)));
    35503550                        if (loadedImage)
    35513551                            toImageContentData(contentData)->setImage(loadedImage.release());
  • trunk/Source/WebCore/rendering/RenderElement.cpp

    r163969 r164224  
    134134    const ContentData* contentData = style.get().contentData();
    135135    if (contentData && !contentData->next() && contentData->isImage() && !element.isPseudoElement()) {
    136         auto styleImage = const_cast<StyleImage*>(toImageContentData(contentData)->image());
    137         auto image = createRenderer<RenderImage>(element, std::move(style), styleImage);
    138         if (styleImage)
    139             image->setIsGeneratedContent();
     136        auto& styleImage = toImageContentData(contentData)->image();
     137        auto image = createRenderer<RenderImage>(element, std::move(style), const_cast<StyleImage*>(&styleImage));
     138        image->setIsGeneratedContent();
    140139        return std::move(image);
    141140    }
  • trunk/Source/WebCore/rendering/style/ContentData.h

    r163936 r164224  
    8888        , m_image(image)
    8989    {
    90     }
    91 
    92     const StyleImage* image() const { return m_image.get(); }
    93     StyleImage* image() { return m_image.get(); }
    94     void setImage(PassRefPtr<StyleImage> image) { m_image = image; }
     90        ASSERT(m_image);
     91    }
     92
     93    const StyleImage& image() const { return *m_image; }
     94    void setImage(PassRefPtr<StyleImage> image)
     95    {
     96        ASSERT(image);
     97        m_image = image;
     98    }
    9599
    96100    virtual RenderPtr<RenderObject> createContentRenderer(Document&, const RenderStyle&) const override;
     
    99103    virtual std::unique_ptr<ContentData> cloneInternal() const override
    100104    {
    101         RefPtr<StyleImage> image = const_cast<StyleImage*>(this->image());
    102 
    103         return std::make_unique<ImageContentData>(image.release());
     105        return std::make_unique<ImageContentData>(m_image.get());
    104106    }
    105107
     
    111113inline bool operator==(const ImageContentData& a, const ImageContentData& b)
    112114{
    113     return *a.image() == *b.image();
     115    return a.image() == b.image();
    114116}
    115117
     
    156158        , m_counter(std::move(counter))
    157159    {
    158     }
    159 
    160     const CounterContent* counter() const { return m_counter.get(); }
    161     void setCounter(std::unique_ptr<CounterContent> counter) { m_counter = std::move(counter); }
     160        ASSERT(m_counter);
     161    }
     162
     163    const CounterContent& counter() const { return *m_counter; }
     164    void setCounter(std::unique_ptr<CounterContent> counter)
     165    {
     166        ASSERT(counter);
     167        m_counter = std::move(counter);
     168    }
    162169
    163170    virtual RenderPtr<RenderObject> createContentRenderer(Document&, const RenderStyle&) const override;
     
    166173    virtual std::unique_ptr<ContentData> cloneInternal() const override
    167174    {
    168         auto counterData = std::make_unique<CounterContent>(*counter());
     175        auto counterData = std::make_unique<CounterContent>(counter());
    169176        return std::make_unique<CounterContentData>(std::move(counterData));
    170177    }
     
    177184inline bool operator==(const CounterContentData& a, const CounterContentData& b)
    178185{
    179     return *a.counter() == *b.counter();
     186    return a.counter() == b.counter();
    180187}
    181188
Note: See TracChangeset for help on using the changeset viewer.