[webkit-reviews] review granted: [Bug 180239] [CoordGraphics] Introduce Nicosia::PaintingContext, add Cairo implementation : [Attachment 328443] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Dec 5 17:21:12 PST 2017

Michael Catanzaro <mcatanzaro at igalia.com> has granted Zan Dobersek
<zan at falconsigh.net>'s request for review:
Bug 180239: [CoordGraphics] Introduce Nicosia::PaintingContext, add Cairo

Attachment 328443: Patch


--- Comment #8 from Michael Catanzaro <mcatanzaro at igalia.com> ---
Comment on attachment 328443
  --> https://bugs.webkit.org/attachment.cgi?id=328443

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

I appreciate the high-quality commit message. As usual.

> Source/WebCore/platform/graphics/nicosia/NicosiaBuffer.cpp:48
> +    if (!tryFastZeroedMalloc(checkedArea.unsafeGet()).getValue(bufferData))
> +	   return;

Should it really be fallible? If rendering is going to be broken, wouldn't it
be better to crash?

> Source/WebCore/platform/graphics/nicosia/NicosiaPaintingContext.h:45
> +    static void paint(Buffer& buffer, const T& functor)

Consider naming it paintFunctor, that might be slightly more clear.

> Source/WebCore/platform/graphics/nicosia/NicosiaPaintingContextCairo.cpp:46
> +    // Balanced by the deref in the s_bufferKey user data destroy callback.
> +    buffer.ref();

You can't use a Ref<Buffer> for this because you're not allowed to capture
anything in the lambda, right? OK then.

> Source/WebCore/platform/graphics/nicosia/NicosiaPaintingContextCairo.cpp:60
> +#ifndef NDEBUG


> Source/WebCore/platform/graphics/nicosia/NicosiaPaintingContextCairo.cpp:81
> +    m_graphicsContext = nullptr;
> +    m_platformContext = nullptr;
> +    m_cr = nullptr;
> +    m_surface = nullptr;

I like that you ensured they're destroyed in the reverse order that they're
declared in the class.

I'm tempted to suggest putting this entire block in an #if !ASSERT_DISABLED
statement, for clarity. Up to you. The risk is that adding more objects to the
class could then result in a different order of destruction depending on if
assertions are enabled, so probably not worth changing....

> Source/WebCore/platform/graphics/nicosia/NicosiaPaintingContextCairo.h:56
> +    RefPtr<cairo_t> m_cr;

m_cr is not a very good name... maybe m_cairo? Not that that's much better....

More information about the webkit-reviews mailing list