Changeset 164224 in webkit
- Timestamp:
- Feb 17, 2014 9:18:29 AM (10 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r164223 r164224 1 2014-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 1 36 2014-02-17 Jer Noble <jer.noble@apple.com> 2 37 -
trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
r164115 r164224 1408 1408 auto list = CSSValueList::createSpaceSeparated(); 1409 1409 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()) 1419 1415 list.get().append(cssValuePool().createValue(toTextContentData(contentData)->text(), CSSPrimitiveValue::CSS_STRING)); 1420 1416 } -
trunk/Source/WebCore/css/StyleResolver.cpp
r164131 r164224 3545 3545 for (ContentData* contentData = const_cast<ContentData*>(m_state.style()->contentData()); contentData; contentData = contentData->next()) { 3546 3546 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))); 3550 3550 if (loadedImage) 3551 3551 toImageContentData(contentData)->setImage(loadedImage.release()); -
trunk/Source/WebCore/rendering/RenderElement.cpp
r163969 r164224 134 134 const ContentData* contentData = style.get().contentData(); 135 135 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(); 140 139 return std::move(image); 141 140 } -
trunk/Source/WebCore/rendering/style/ContentData.h
r163936 r164224 88 88 , m_image(image) 89 89 { 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 } 95 99 96 100 virtual RenderPtr<RenderObject> createContentRenderer(Document&, const RenderStyle&) const override; … … 99 103 virtual std::unique_ptr<ContentData> cloneInternal() const override 100 104 { 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()); 104 106 } 105 107 … … 111 113 inline bool operator==(const ImageContentData& a, const ImageContentData& b) 112 114 { 113 return *a.image() == *b.image();115 return a.image() == b.image(); 114 116 } 115 117 … … 156 158 , m_counter(std::move(counter)) 157 159 { 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 } 162 169 163 170 virtual RenderPtr<RenderObject> createContentRenderer(Document&, const RenderStyle&) const override; … … 166 173 virtual std::unique_ptr<ContentData> cloneInternal() const override 167 174 { 168 auto counterData = std::make_unique<CounterContent>( *counter());175 auto counterData = std::make_unique<CounterContent>(counter()); 169 176 return std::make_unique<CounterContentData>(std::move(counterData)); 170 177 } … … 177 184 inline bool operator==(const CounterContentData& a, const CounterContentData& b) 178 185 { 179 return *a.counter() == *b.counter();186 return a.counter() == b.counter(); 180 187 } 181 188
Note: See TracChangeset
for help on using the changeset viewer.