[webkit-reviews] review denied: [Bug 209591] [HarfBuzz] Not all CSS font features are applied : [Attachment 394590] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Mar 26 04:54:33 PDT 2020


Adrian Perez <aperez at igalia.com> has denied Carlos Garcia Campos
<cgarcia at igalia.com>'s request for review:
Bug 209591: [HarfBuzz] Not all CSS font features are applied
https://bugs.webkit.org/show_bug.cgi?id=209591

Attachment 394590: Patch

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




--- Comment #2 from Adrian Perez <aperez at igalia.com> ---
Comment on attachment 394590
  --> https://bugs.webkit.org/attachment.cgi?id=394590
Patch

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

Logic looks good. There is one thing that I find hard to believe that it would
be working, please check below ⬇️

> Source/WebCore/platform/graphics/freetype/FontCacheFreeType.cpp:570
> +		   char buffer[5];

If it was me, I would probably have done instead:

  const auto& tag = fontFaceFeature.tag();
  const char buffer[] = { tag[0], tag[1], tag[2], tag[3], '\0' };
  FcPatternAddString(resultPattern.get(), FC_FONT_FEATURES,
reinterpret_cast<const FcChar*>(buffer));

But in the end both are equivalent, so no big deal ��️

> Source/WebCore/platform/graphics/freetype/FontCacheFreeType.cpp:577
> +		   FcPatternAddString(resultPattern.get(), FC_FONT_FEATURES,
reinterpret_cast<const FcChar8*>(&buffer));

Due to array-to-pointer decay with “&buffer” jere you are passing a “char**”
so I do not know how this can possibly work correctly. We need to plainly
pass “buffer” here.

Using “FcPatternAddString(..., buffer)” might render the cast as unneeded,
too (I don't remember whether “FcChar8” is exactly the same as “char”, though).

>
Source/WebCore/platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:94
> +	       FcPatternAddString(pattern.get(), FC_FONT_FEATURES,
reinterpret_cast<const FcChar8*>(&buffer));

Same here.


More information about the webkit-reviews mailing list