[Webkit-unassigned] [Bug 43779] RenderImage::imageChanged invalidates wrong area

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Aug 11 23:59:21 PDT 2010


https://bugs.webkit.org/show_bug.cgi?id=43779


Nikolas Zimmermann <zimmermann at kde.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #64162|review?                     |review-
               Flag|                            |




--- Comment #15 from Nikolas Zimmermann <zimmermann at kde.org>  2010-08-11 23:59:21 PST ---
(From update of attachment 64162)
Excellent idea.

r-, because of following issues:
WebCore/ChangeLog:8
 +          Move the CachedImage from RenderImage into a separate class.
The ChangeLog should contain more information, especially the why of this change.
You should also explicitely name RenderImageResource here, so it's clear where the code moved.

WebCore/loader/ImageLoader.cpp:229
 +      if (RenderObject* renderer = m_element->renderer()) {
Change to early return style. if renderrer is not existant, just return 0.

WebCore/loader/ImageLoader.cpp:247
 +      if (RenderImageResource* imageResource = renderImageResource()) {
Same here.

WebCore/rendering/RenderImage.cpp:61
 +      m_cachedImage = RenderImageResource::create(this);
No need to move this into the constructor body.

WebCore/rendering/RenderImage.cpp:70
 +      m_cachedImage.clear();
This is automatically done IIRC. Please double check, but I think it can be removed.

WebCore/rendering/RenderImage.h:46
 +      void setCachedImage(CachedImage* image) { m_cachedImage->setCachedImage(image); }
Who calls these methods? It seems to me, all callers of these functions could now operate on RenderImageResource. Please check twice.

WebCore/rendering/RenderImage.h:47
 +      CachedImage* cachedImage() { return m_cachedImage->cachedImage(); }
Ditto.

WebCore/rendering/RenderImage.h:49
 +      virtual bool hasImage() const { return m_cachedImage->hasImage(); }
Ditto.

WebCore/rendering/RenderImage.h:54
 +      virtual Image* image(int /* width */ = 0, int /* height */ = 0) { return m_cachedImage->image(); }
Ditto.

WebCore/rendering/RenderImage.h:55
 +      virtual bool errorOccurred() const { return m_cachedImage->errorOccurred(); }
Ditto.

It should be possible to move all these virtual methods away from RenderObject now, no?WebCore/rendering/RenderImage.h:86
 +      virtual bool usesImageContainerSize() const { return m_cachedImage->usesImageContainerSize(); }
Same for the bunch of methods in the next lines.

WebCore/rendering/RenderImageResource.cpp:35
 +  PassOwnPtr<RenderImageResource> RenderImageResource::create(RenderObject* render)
You can move this inline into the header.

WebCore/rendering/RenderImageResource.cpp:41
 +      : m_render(render)
I'd prefer "m_renderer" here.

WebCore/rendering/RenderImageResource.cpp:61
 +      if (m_cachedImage) {
You can early return here, if m_cachedImage is 0.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list