Bug 227015

Summary: GraphicsContext::apply{Fill,Stroke}Pattern needs to do nothing if there is no fill/stroke pattern set
Product: WebKit Reporter: Myles C. Maxfield <mmaxfield>
Component: New BugsAssignee: Myles C. Maxfield <mmaxfield>
Status: RESOLVED FIXED    
Severity: Normal CC: koivisto, rniwa, sabouhallawa, simon.fraser, webkit-bug-importer, wenson_hsieh
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Description Myles C. Maxfield 2021-06-14 23:01:26 PDT
GraphicsContext::apply{Fill,Stroke}Pattern needs to do nothing if there is no fill/stroke pattern set
Comment 1 Myles C. Maxfield 2021-06-14 23:02:59 PDT
Created attachment 431406 [details]
Patch
Comment 2 EWS 2021-06-15 11:19:04 PDT
Committed r278885 (238827@main): <https://commits.webkit.org/238827@main>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431406 [details].
Comment 3 Radar WebKit Bug Importer 2021-06-15 11:20:21 PDT
<rdar://problem/79352245>
Comment 4 Said Abou-Hallawa 2021-07-08 15:09:19 PDT
Comment on attachment 431406 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=431406&action=review

> Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:547
> +    if (!m_state.strokePattern)
> +        return;

This check is not needed for GraphicsContextCG because all the callers check if (m_state.strokePattern) before calling this function. But it is needed for DisplayList::Recorder and RenderSVGResourcePattern::applyResource() because the callers do not check if (m_state.strokePattern) before calling this function. So I think we should either

1. Remove the check if (m_state.strokePattern) form GraphicsContextCG functions.
2. Remove this check and make DisplayList::Recorder and RenderSVGResourcePattern::applyResource() check if (m_state.strokePattern) before calling this function.

> Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:566
> +    if (!m_state.fillPattern)
> +        return;

Ditto.