[Webkit-unassigned] [Bug 34185] REGRESSION: Mask not invalidating

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Feb 10 16:19:05 PST 2010


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


Simon Fraser (smfr) <simon.fraser at apple.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #48529|review?                     |review+
               Flag|                            |




--- Comment #10 from Simon Fraser (smfr) <simon.fraser at apple.com>  2010-02-10 16:19:05 PST ---
(From update of attachment 48529)
> Index: WebCore/ChangeLog
> ===================================================================
> --- WebCore/ChangeLog	(revision 54627)
> +++ WebCore/ChangeLog	(working copy)
> @@ -1,3 +1,25 @@
> +2010-02-10  Beth Dakin  <bdakin at apple.com>
> +
> +        Reviewed by NOBODY (OOPS!).
> +
> +        Fix for https://bugs.webkit.org/show_bug.cgi?id=34185 REGRESSION: 
> +        Mask not updated according to transform
> +
> +        SVGMaskElement is the only class that keeps a HashMap of canvas 
> +        resources rather than just a since pointer to a resource. This 

mis-typing here: "since pointer".


> Index: WebCore/svg/SVGMaskElement.cpp
> ===================================================================
> --- WebCore/svg/SVGMaskElement.cpp	(revision 54613)
> +++ WebCore/svg/SVGMaskElement.cpp	(working copy)
> @@ -105,9 +105,6 @@ void SVGMaskElement::svgAttributeChanged
>  {
>      SVGStyledElement::svgAttributeChanged(attrName);
>  
> -    if (m_masker.isEmpty())
> -        return;

I'm not sure why this early return can go away, and the changelog doesn't say?

> +void SVGMaskElement::invalidateCanvasResources()
> +{
> +    if (m_masker.isEmpty())
> +        return;
> +
> +    for (HashMap<const RenderObject*, RefPtr<SVGResourceMasker> >::iterator it = m_masker.begin(); it != m_masker.end(); ++it)
> +        it->second->invalidate();

Can that be a const_iterator? You may have to make a local variable to store
m_masker.end().

> Index: WebCore/svg/SVGStyledElement.h
> ===================================================================
> --- WebCore/svg/SVGStyledElement.h	(revision 54613)
> +++ WebCore/svg/SVGStyledElement.h	(working copy)
> @@ -62,6 +62,7 @@ namespace WebCore {
>  
>          void invalidateResourcesInAncestorChain() const;
>          void invalidateResources();
> +        virtual void invalidateCanvasResources();

It's unfortunate to propagate the 'canvas' syntax because that is easily
confused with HTML canvas. Perhaps add a comment here to explain how
invalidateResources() is different from invalidateCanvasResources().

r=me

-- 
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