[webkit-reviews] review denied: [Bug 201905] CRASH shape-outside should support path() syntax : [Attachment 382673] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Nov 4 12:51:10 PST 2019


Simon Fraser (smfr) <simon.fraser at apple.com> has denied Dirk Schulze
<krit at webkit.org>'s request for review:
Bug 201905: CRASH shape-outside should support path() syntax
https://bugs.webkit.org/show_bug.cgi?id=201905

Attachment 382673: Patch

https://bugs.webkit.org/attachment.cgi?id=382673&action=review




--- Comment #6 from Simon Fraser (smfr) <simon.fraser at apple.com> ---
Comment on attachment 382673
  --> https://bugs.webkit.org/attachment.cgi?id=382673
Patch

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

> Source/WebCore/ChangeLog:3
> +	   CRASH shape-outside should support path() syntax

Let's call this "Fix crash/assertion by implementing the path() syntax on
shape-outside

> Source/WebCore/ChangeLog:17
> +	   Tests: css3/shapes/spec-examples/shape-outside-020.html
> +		  css3/shapes/spec-examples/shape-outside-021.html

I imported WPT into imported/w3c/web-platform-tests/css/css-shapes recently. Do
these not test the path() syntax?

> Source/WebCore/platform/graphics/PathTraversalState.h:91
> +    Vector<FloatPoint> m_points;

Can we reserveCapacity() on this vector somewhere to improve performance?

> Source/WebCore/rendering/shapes/Shape.cpp:147
> +	   // TODO: Currently, WebCoree just supports single shapes. Path
syntax may have multiple sub-paths.

WebCoree!

> Source/WebCore/rendering/shapes/Shape.cpp:153
> +	   std::unique_ptr<Vector<FloatPoint>> vertices =
makeUnique<Vector<FloatPoint>>(valuesSize);
> +	   for (unsigned i = 0; i < valuesSize; ++i)
> +	       (*vertices)[i] = physicalPointToLogical(values[i],
logicalBoxSize.height(), writingMode);

This could be far more efficient in the common case (isHorizontalWritingMode)
because it could just copy the vector.

> Source/WebCore/rendering/style/BasicShapes.cpp:353
> +    buildLengthVectorFromByteStream(*m_byteStream, m_values, 3.f);

What is 3.f? Put into a named constant.

> Source/WebCore/svg/SVGPathUtilities.cpp:251
> +    points = WTFMove(builder.pointsList());

Make Vector<FloatPoint> the return value of this function?


More information about the webkit-reviews mailing list