[Webkit-unassigned] [Bug 63871] [Chromium] canvas/philip/tests/2d.gradient.object.update.html is failed on chromium.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Jul 8 06:03:31 PDT 2011


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





--- Comment #6 from Mike Reed <reed at google.com>  2011-07-08 06:03:30 PST ---
I agree this looks very invasive. Looking further up, I wonder why skia has this dual between graphicscontext->m_state (which has the gradient) and platformcontext which has the skia gradient. I notice the the webkit Gradient object itself holds a cache of the skia gradient, and it is correctly purged when addColorStop is called. If skia always went directly to m_state.fillGradient, I think we could skip all of these pushes.

Another clue that something funny is going on. Look in GraphicsContext.cpp


#if !USE(SKIA)
void GraphicsContext::setPlatformFillGradient(Gradient*)
{
}

void GraphicsContext::setPlatformFillPattern(Pattern*)
{
}

void GraphicsContext::setPlatformStrokeGradient(Gradient*)
{
}

void GraphicsContext::setPlatformStrokePattern(Pattern*)
{
}
#endif

All of these seem to exist solely for skia. If we didn't make a (premature) copy of the gradient, but reached directly into m_state each time, I think we would (a) fix this bug, and (b) avoid this whole layer of indirection/copying.

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